Назад | Перейти на главную страницу

Производительность SQL - преобразование параметра или типа столбца

Меня спросили об этом на интервью, и я хотел бы получить отзывы ...

У меня есть хранимая процедура, которая принимает параметр IsActive varchar, который является строкой «YES» или «NO».

Хранимая процедура запросит таблицу, в которой есть столбец Active, с типом данных bit. Если параметр равен «YES», то он вернет все строки с битовым значением активного столбца, равным 1, иначе для «NO» он вернет все строки с активным битовым значением столбца, равным 0.

Лучше всего преобразовать значение параметра из YES / NO в 1/0 или преобразовать данные таблицы из 1/0 в YES / NO при запросе?

Будет ли ответ таким же, если типы данных поменяны местами (1/0 передается, ДА / НЕТ сохраняется в таблице)?

Я бы подумал, что лучше преобразовать параметр из «ДА» / «НЕТ» в 1/0, чтобы избежать необходимости хранить больше занимающих место varchars в базе данных.

Я также думаю, что запрос, который фильтрует по типам битов, будет более эффективным при поиске, чем тот, который фильтрует по varchars.