MAXDOP = 1, समानांतर संकेत और लागत समानता के लिए लागत


11

यदि कोई उदाहरण MAXDOP1 पर सेट किया गया है और विशिष्ट संकेतों को समानांतर जाने की अनुमति देने के लिए क्वेरी संकेत का उपयोग किया जाता है, तो क्या लागत थ्रेशोल्ड फॉर पैरेललिज्म मूल्य अभी भी एसक्यूएल द्वारा उपयोग किया जाता है यह तय करने के लिए कि क्या वास्तव में समानांतर जाना है या नहीं?

मैं इस विशिष्ट जानकारी को खोद नहीं पा रहा हूं, हालांकि यह लिंक बताता है कि CTFP को अनदेखा कर दिया गया MAXDOPहै। 1. यह बिना किसी अनुरोध के क्वेरी संकेत के बिना समझ में आता है, लागत की परवाह किए बिना, समानांतर होगा जब MAXDOP1 है।

क्या कोई मुझे बता सकता है कि इन दोनों अनुरोधों का अपेक्षित व्यवहार क्या होगा?

उदाहरण 1:

Instance Maxdop: 1 
CTFP: 50 
Query hint: Maxdop=2 
Query cost: 30

उदाहरण 2:

Instance Maxdop: 1
CTFP: 50
Query hint: Maxdop=2
Query cost: 70

जवाबों:


20

यदि कोई उदाहरण MAXDOP1 पर सेट किया गया है और विशिष्ट संकेतों को समानांतर जाने की अनुमति देने के लिए क्वेरी संकेत का उपयोग किया जाता है, तो क्या लागत थ्रेशोल्ड फॉर पैरेललिज्म मूल्य अभी भी एसक्यूएल द्वारा उपयोग किया जाता है यह तय करने के लिए कि क्या वास्तव में समानांतर जाना है या नहीं?

सरल उत्तर: हाँ

विवरण

यहां कुछ अलग चीजें चल रही हैं, जिन्हें अलग करना जरूरी है:

  1. एक क्वेरी के लिए उपलब्ध समानता की अधिकतम प्रभावी डिग्री क्या है ?

    इसके लिए योगदानकर्ता (मोटे तौर पर महत्व के क्रम में) हैं:

    • संसाधन राज्यपाल की MAX_DOPस्थापना
    • क्वेरी संकेत MAXDOPसेटिंग
    • max degree of parallelismउदाहरण के कॉन्फ़िगरेशन विकल्प

    विवरण सर्वर के "मैक्स डिग्री ऑफ पैरेललिज्म" सेटिंग, संसाधन गवर्नर के MAX_DOP और क्वेरी संकेत MAXDOP में समझाया गया है - SQL सर्वर का उपयोग किसको करना चाहिए? जैक ली, माइक्रोसॉफ्ट एसक्यूएल सर्वर ग्राहक सेवा और समर्थन के लिए वरिष्ठ वृद्धि इंजीनियर द्वारा। नीचे दी गई तालिका उस लिंक से पुन: प्रस्तुत की गई है:

    समानांतरवाद तालिका

  2. क्या एक क्वेरी योजना समानता का उपयोग करेगी?

    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 सर्वर कैश हर समानांतर योजना के साथ एक सीरियल प्लान है


2

उदाहरण 1 उदाहरण Maxdop: 1 CTFP: 50 क्वेरी संकेत: Maxdop = 2 क्वेरी लागत: 30

MAXDOP क्वेरी संकेत संकेत की अधिकतम डिग्री की व्यापकता को बढ़ाता है, लेकिन CTPF 50 है और क्वेरी लागत 30 है क्योंकि यह धारावाहिक योजना के लिए जा सकता है।

उदाहरण 2 उदाहरण मैक्सडोप: 1 सीटीएफपी: 50 क्वेरी संकेत: मैक्सडोप = 2 क्वेरी लागत: 70

यहां फिर से अधिकतम समानता की डिग्री 2 के रूप में ली जाएगी क्योंकि MAXDOP संकेत है, लेकिन CTFP को 50 और क्वेरी के रूप में लिया जाएगा, यदि संभव हो तो पॉल का उल्लेख समानांतर में चल सकता है।

यदि किसी उदाहरण में MAXDOP 1 पर सेट किया गया है और क्वेरी के संकेत का उपयोग विशिष्ट प्रश्नों को समानांतर में जाने के लिए किया जाता है, तो क्या लागत थ्रेशोल्ड फॉर पैरेललिज्म वैल्यू अभी भी SQL द्वारा उपयोग किया जाता है ताकि यह तय किया जा सके कि वास्तव में समानांतर जाना है या नहीं?

MAXDOP संकेत समानांतरता की अधिकतम डिग्री के उदाहरण की व्यापक सेटिंग को ओवरराइड करेगा।

MAXDOP संकेत डॉक्स। Microsoft से उद्धृत करना

MAXDOP नंबर इस पर लागू होता है: SQL Server 2008 SQL Server 2017 के माध्यम से।

इस विकल्प को निर्दिष्ट करने वाले क्वेरी के लिए sp_configure और संसाधन राज्यपाल के समानांतरवाद कॉन्फ़िगरेशन विकल्प की अधिकतम डिग्री को ओवरराइड करता है। MAXDOP क्वेरी संकेत sp_configure के साथ कॉन्फ़िगर किए गए मान को पार कर सकता है। यदि MAXDOP संसाधन गवर्नर के साथ कॉन्फ़िगर किए गए मान से अधिक है, तो डेटाबेस इंजन संसाधन गवर्नर MAXDOP मान का उपयोग करता है,

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.