Мне интересно, какое влияние может оказать следующее на производительность. Допустим, есть таблица с одним из столбцов данных, типизированный как int. Эта таблица содержит миллионы и миллионы строк. Затем допустим, что выполняются следующие 2 SQL-оператора.
SELECT * FROM tblTest WHERE colInt in (3,4)
и
SELECT * FROM tblTest WHERE colInt in ('3','4')
Я полагаю, что во втором запросе подразумеваемый символьный тип данных попытается преобразовать все значения в colInt, а затем попытается выполнить сравнение. Кто-нибудь может подтвердить, что это так? Кто-нибудь знает статью MSDN, которая объясняет это? Это довольно дорого?
Я знаю, что это кажется довольно глупым, однако, когда вы вынуждены жить этим из-за стороннего программного обеспечения, мы не можем ничего сделать, кроме как полностью понять, каковы будут последствия, когда они изменят тип данных нескольких столбцов от int до varchar и тиски против.