क्या कोई मुझे निम्नलिखित प्रश्नों के लिए SQL सर्वर निष्पादन योजना को समझने में सहायता कर सकता है?एसक्यूएल सर्वर स्केलर फ़ंक्शन बनाम सबक्वायरी निष्पादन योजना विश्लेषण
मुझे उम्मीद है कि सबक्वायरी संस्करण (क्वेरी 2) तेजी से निष्पादित करने के लिए, क्योंकि यह सेट-आधारित है। मामूली - - यह जब प्रश्नों स्वतंत्र रूप से चलाने का मामला प्रतीत होता है लेकिन कार्य योजना लागू करके 85% क्रमश: 15% बनाम के रूप में क्वेरी लागतों को दिखाता है:
//-- Query 1 (15%) - Scalar Function
SELECT
gi.GalleryImageId,
gi.FbUserId,
dbo.GetGalleryImageVotesByGalleryImageId(gi.GalleryImageId) AS Votes
FROM
GalleryImage gi
//-- Query 2 (85%) - Subquery
SELECT
gi.GalleryImageId,
gi.FbUserId,
(SELECT COUNT(*) FROM GalleryImageVote WHERE GalleryImageId = gi.GalleryImageId)
FROM
GalleryImage gi
मैं यहाँ क्या याद आ रही है; क्या फ़ंक्शन की लागत पर निष्पादन योजना छोड़ती है? इसके अलावा, उपरोक्त में से कोई भी सीटीई या ओवर/पार्टिशन क्वेरी के साथ बेहतर तरीके से सेवा के लिए कोई सुझाव देगा?
अग्रिम धन्यवाद!
क्या आपके पास दोनों एक ही क्वेरी संपादक विंडो में थे? चूंकि क्वेरी विश्लेषक उनकी तुलना करेगा और विंडो में जो कुछ है (15%/85%) के लिए प्रत्येक सापेक्ष मूल्य असाइन करेगा। – JNK
हां, यही वह जगह है जहां से% मान आया :) – Robarondaz
क्वेरी निष्पादन समय हमेशा लागत के बराबर नहीं होता है। एसक्यूएल सर्वर वजन घटता प्रतीत होता है और एचडीडी से अधिक रैम उपयोग पढ़ता है। – jahu