com*_*ech 13 t-sql sql-server query-optimization short-circuiting
我正在努力优化一些使用频繁的存储过程并遇到一个场景,提出了一个我无法找到任何答案的问题:在存储过程中评估TSQL时,SQL Server是否会使IF
语句短路?
例如,假设存储过程的代码类似于:
IF @condition1 = 1
OR EXISTS(SELECT 1 FROM table1 WHERE column1 = @value1)
...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,SQL Server是否会使评估短路,以便EXISTS
在前面的子句计算结果为true时从不执行该语句?
如果它从未或有时只是,那么我们就会有一些重写.