SQL Server 2008 R2를 사용하고 있으며이 의사 쿼리 (SP)가 있습니다.
select ...
from ...
WHERE @LinkMode IS NULL
AND (myColumn IN (...very long-running query...))
...
...
문제는 내가 SP를 실행하더라도 쿼리를 실행하는 데 시간이 오래 걸린다는 것입니다 @LinkMode=2
.
알다시피, 장기 실행 쿼리는 @LinkMode가 null 인 경우에만 실행해야합니다. 여기서는 그렇지 않습니다. 내 경우에는 @LinkMode = 2!
그러나 내가 그것을 변경하면 :
select ...
from ...
WHERE 1=2
AND (myColumn IN (...very long time exeted query...))
...
...
SP 가 빠르게 실행됩니다.
전에는 최적화 프로그램이 기준 순서를 최적화 할 수 있다고 들었습니다 .
그래서 나는 묻습니다.
옵티마이 저가 다른 경로를 선택하더라도 확인하는 것보다 빠를 수있는 것은 무엇
=null
입니까? 내 말은, 다른 긴 쿼리를 실행하는 것보다 검사if a==null
가 훨씬 빠르다고 생각 합니다 ...어떻게 할 수 강제로 내가 (같은 순서로) 작성한으로 쿼리를 실행하는 SQL 서버를?