SQL является декларативным языком, а не процедурным языком.
То есть запрос SELECT
описывает, как должен выглядеть набор результатов , Он не определяет пошаговые операции, используемые для удовлетворения запроса. То, что исполняется, это план выполнения . И это производится оптимизатором после фазы компиляции (и некоторые механизмы баз данных могут даже настроить план выполнения после того, как запрос запущен).
Итак, вы задаетесь вопросом о том, что делает оптимизатор. Для всех практических целей оптимизатор создаст один и тот же план выполнения, используя те же индексы, разделы, статистику таблиц и т. Д.
В одном случае теоретически может быть небольшая разница в производительности , Если, скажем, все зарплаты были 60000, то первое сравнение будет хуже, чем второе - потому что SQL Сервер закорачивает AND
вычисления, поэтому он останавливается на первом "ложном".
Я не уверен на 100%, если в оптимизаторе сервера SQL достаточно информации для организации сравнений, принимая во внимание как распределение значений в столбцах, так и сложность сравнений, чтобы сгенерировать оптимальный порядок (это будет это для более дорогих сравнений). Однако сравнения базовых типов выполняются довольно быстро, поэтому даже их обратное изменение будет иметь очень небольшое влияние на производительность.