मैं SQL Server 2008 R2 का उपयोग कर रहा हूं और मेरे पास यह छद्म क्वेरी (SP) है:
select ...
from ...
WHERE @LinkMode IS NULL
AND (myColumn IN (...very long-running query...))
...
...
समस्या यह है कि क्वेरी को निष्पादित करने में बहुत लंबा समय लगता है - भले ही मैं एसपी के साथ निष्पादित करता हूं @LinkMode=2
।
जैसा कि आपने देखा, लंबे समय से चल रहे क्वेरी को केवल तभी निष्पादित किया जाना चाहिए यदि @LinkMode शून्य है, जो यहां नहीं है। मेरे मामले में @LinkMode = 2!
हालाँकि, अगर मैं इसे बदल देता हूँ:
select ...
from ...
WHERE 1=2
AND (myColumn IN (...very long time exeted query...))
...
...
सपा करता तेजी से चलाते हैं।
मैंने पहले सुना है कि कभी-कभी ऑप्टिमाइज़र मानदंडों के क्रम को अनुकूलित कर सकता है।
इसलिए मैं पूछता हूँ :
भले ही ऑप्टिमाइज़र एक अलग मार्ग चुनता है, अगर जाँच करने से ज्यादा तेज़ क्या हो सकता है
=null
? मेरा मतलब है, मुझे लगता है कि जाँचif a==null
है बहुत तेजी से अन्य लंबी क्वेरी चलाने की तुलना में ...मैं SQL सर्वर को क्वेरी चलाने के लिए कैसे बाध्य कर सकता हूं क्योंकि मैंने इसे (उसी क्रम) लिखा है?