मौजूद है मैं उत्सुक जिनमें से नीचे निम्नलिखित अधिक कुशल हो जाएगा हूँ?
मैं हमेशा IN
का उपयोग कर, क्योंकि मेरा मानना है कि एसक्यूएल सर्वर परिणाम एक बड़ा IF
बयान में सेट बदल जाता है के बारे में थोड़ा सतर्क किया गया है। बड़े परिणाम के लिए सेट के परिणामस्वरूप खराब प्रदर्शन हो सकता है। छोटे परिणामों के सेट के लिए, मुझे यकीन नहीं है कि या तो बेहतर है। बड़े परिणाम सेट के लिए, EXISTS
अधिक कुशल नहीं होगा?बनाम में एसक्यूएल सर्वर प्रदर्शन
WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)
बनाम
WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])
पता लगाने का सबसे अच्छा तरीका यह है कि इसे आजमाएं और कुछ उपाय करें। –
** ** ** ** के लिए एक गैज़िलियन डुप्लिकेट होने के लिए ** प्राप्त हुआ है ...... –
@marc_s: हाँ, लेकिन मुझे लगता है कि यह वास्तव में मामला निर्भर है। मुझे लगता है कि कैनोलिक जवाब klausbyskov है (या जो भी पूर्व कला का दावा कर सकता है)। – RedFilter