यदि कोई उदाहरण MAXDOP
1 पर सेट किया गया है और विशिष्ट संकेतों को समानांतर जाने की अनुमति देने के लिए क्वेरी संकेत का उपयोग किया जाता है, तो क्या लागत थ्रेशोल्ड फॉर पैरेललिज्म मूल्य अभी भी एसक्यूएल द्वारा उपयोग किया जाता है यह तय करने के लिए कि क्या वास्तव में समानांतर जाना है या नहीं?
सरल उत्तर: हाँ ।
विवरण
यहां कुछ अलग चीजें चल रही हैं, जिन्हें अलग करना जरूरी है:
एक क्वेरी के लिए उपलब्ध समानता की अधिकतम प्रभावी डिग्री क्या है ?
इसके लिए योगदानकर्ता (मोटे तौर पर महत्व के क्रम में) हैं:
- संसाधन राज्यपाल की
MAX_DOP
स्थापना
- क्वेरी संकेत
MAXDOP
सेटिंग
max degree of parallelism
उदाहरण के कॉन्फ़िगरेशन विकल्प
विवरण सर्वर के "मैक्स डिग्री ऑफ पैरेललिज्म" सेटिंग, संसाधन गवर्नर के MAX_DOP और क्वेरी संकेत MAXDOP में समझाया गया है - SQL सर्वर का उपयोग किसको करना चाहिए? जैक ली, माइक्रोसॉफ्ट एसक्यूएल सर्वर ग्राहक सेवा और समर्थन के लिए वरिष्ठ वृद्धि इंजीनियर द्वारा। नीचे दी गई तालिका उस लिंक से पुन: प्रस्तुत की गई है:
क्या एक क्वेरी योजना समानता का उपयोग करेगी?
SQL सर्वर क्वेरी ऑप्टिमाइज़र हमेशा एक धारावाहिक योजना पहले पाता है *।
तो अगर:
- इसके अलावा अनुकूलन उचित है; तथा
- सर्वश्रेष्ठ धारावाहिक योजना की लागत
cost threshold for parallelism
विन्यास मूल्य से अधिक है
... आशावादी एक समानांतर योजना खोजने की कोशिश करेगा ।
तो अगर:
- एक समानांतर योजना पाई जाती है (अर्थात संभव है); तथा
- समानांतर योजना की लागत सर्वश्रेष्ठ धारावाहिक योजना से कम है
... एक समानांतर योजना तैयार की जाएगी।
नोट:cost threshold for parallelism
केवल प्रभावित करता है कि क्या एक समानांतर योजना के लिए अनुकूलक दिखता है। एक बार जब एक समानांतर योजना को कैश किया जाता है, तो सीटीपीएफ सेटिंग की परवाह किए बिना इसका उपयोग किया जाता है जब इसे पुन: उपयोग किया जाता है (इसलिए जब तक धागे उपलब्ध होते हैं) समानांतरवाद का उपयोग करेंगे।
उदाहरण
उदाहरण के लिए, अधिकतम 1 और क्वेरी संकेत अधिकतम 2 के साथ, प्रभावी उपलब्ध डीओपी 2 है। यदि एक समानांतर योजना चुनी जाती है, तो यह डीओपी 2 का उपयोग करेगा।
उदाहरण 1
50 की CTFP और 30 की सबसे सस्ती सीरियल प्लान की लागत को देखते हुए , SQL सर्वर एक समानांतर योजना खोजने की कोशिश नहीं करेगा । एक धारावाहिक योजना का निर्माण किया जाएगा।
उदाहरण 2
50 की CTFP और 70 की सबसे सस्ती सीरियल प्लान की लागत को देखते हुए , SQL सर्वर एक समानांतर योजना खोजने की कोशिश करेगा । यदि इस योजना (यदि पाया गया) की लागत 70 (धारावाहिक योजना लागत) से कम है, तो एक समानांतर योजना का उत्पादन किया जाएगा।
क्वेरी ऑप्टिमाइज़ेशन का अंतिम परिणाम हमेशा एकल कैश्ड प्लान होता है: सीरियल या समानांतर। ऑप्टिमाइज़र केवल खोज 0 (टीपी) और खोज 1 (क्यूपी) चरणों में एक सीरियल प्लान पाता है।
यह हो सकता है तो (वर्णित) को दोबारा चलाता search1 एक आवश्यकता के साथ एक समानांतर योजना का निर्माण करने के। एक विकल्प तब धारावाहिक और समानांतर के बीच बनाया जाता है जो अब तक की पूरी योजना पर आधारित है। यह विकल्प केस ऑप्टिमाइज़ेशन में बाध्यकारी होता है, खोज 2 (पूर्ण अनुकूलन) पर चलता है । अनुकूलन का प्रत्येक चरण कई विकल्पों पर विचार करता है, लेकिन एक चरण से आउटपुट हमेशा एक एकल सबसे अच्छी योजना होती है, जो या तो धारावाहिक या समानांतर होती है।
मैंने इसके बारे में मिथक में लिखा है : SQL सर्वर कैश हर समानांतर योजना के साथ एक सीरियल प्लान है