मुझे बस यह पुष्टि करने की आवश्यकता है कि मैं कुछ सही ढंग से समझता हूं:
मैंने हाल ही में एक SO प्रश्न देखा जिसमें एक उपयोगकर्ता ने Linq में उत्तर पोस्ट किया जैसे:
from p in db.table where p.column.AddMinutes(1) > DateTime.Now select p
Linq से अपरिचित लोगों के लिए, मैं उस कथन के आउटपुट की उम्मीद करूँगा (निष्पक्षता में इसका परीक्षण नहीं):
SELECT *
FROM table t
WHERE DATEADD(min, 1, t.column) >= GETDATE()
मैंने यह कहते हुए एक उत्तर पोस्ट किया कि डेटाटाइम हेरफेर चर पर होना चाहिए (इस मामले में GETDATE()
) इसलिए वास्तव में बयान में कुछ होना चाहिए:
SELECT *
FROM table t
WHERE t.column >= DATEADD(min, -1, GETDATE())
मेरे जवाब में, बिट्स अब मैं अनिश्चित हूँ, निम्नलिखित मान लें:
- स्तंभ के हेरफेर के कारण अनुक्रमित का उपयोग नहीं किया जाएगा
- उपर्युक्त के कारण क्वेरी योजनाएँ अलग-अलग होंगी (परीक्षण नहीं किया गया है, ऐसा मानते हुए)
- उपरोक्त के कारण, 1 क्वेरी वास्तव में 2 वें से भी बदतर प्रदर्शन करेगी।
मेरा प्रश्न:
क्या मुझे अपने तर्क में कुछ याद नहीं है? क्या मैं सही हूँ? अंत में, क्या किसी भी संस्था के पास SARGability पर कोई अच्छा लेख है?