Производительность SQL - преобразовать параметр или тип столбца
Меня спросили об этом на собеседовании, и я хотел бы получить отзыв...
У меня есть хранимая процедура, которая принимает в параметре varchar IsActive, который является строкой "YES" или "NO".
Хранимая процедура запросит таблицу, в которой есть столбец Active с типом данных bit. Если параметр "YES", он вернет все строки с битовым значением активного столбца, равным 1, в противном случае для "NO" он вернет все строки с битовым значением активного столбца, равным 0.
Лучше ли преобразовывать значение параметра из YES/NO в 1/0 или преобразовывать данные таблицы из 1/0 в YES/NO при запросе?
Является ли ответ тем же, если типы данных меняются местами (передается 1/0, ДА / НЕТ сохраняется в таблице)?
1 ответ
Я думаю, что лучше преобразовать параметр из "YES"/"NO" в 1/0, чтобы избежать необходимости хранить более объемные varchars в базе данных.
Я также думаю, что запрос, который фильтрует по битовым типам, будет более эффективным при поиске, чем запрос, который фильтрует по varchars.