Можно создать дубликат:
SQL Server - Query Short-Circuiting?
Is the SQL WHERE clause short-circuit evaluated?Производительность ИЛИ?
У меня есть вопрос о выполнении логического ИЛИ операторов T-SQL (SQL Server 2005).
Я искал вокруг немного, но я ничего не мог найти по этому вопросу.
Если у вас есть следующий запрос:
SELECT * FROM Table WHERE (randomboolean OR HeavyToEvaluateCondition)
Не будет ли переводчик процедура идти так далеко, как randomboolean
и пропустить оценку тяжелых условиях, чтобы сохранить эффективность, учитывая, что первое условие истинно?
Поскольку одно из значений в операторе OR истинно, было бы необязательно оценивать второе условие, так как мы уже знаем, что выполнено первое условие!
Я знаю, что это работает на C#, но я хочу знать, могу ли я рассчитывать на него в T-SQL тоже.
http://stackoverflow.com/questions/789231/is-the-sql-where-clause-short-circuit-оцененный – AakashM