समानांतरवाद सर्वश्रेष्ठ आचरण


9

सामान्य रूप में समानता स्थापित करने के साथ सबसे अच्छे अभ्यास क्या हैं? मुझे पता है कि SQL सर्वर 0सभी उपलब्ध प्रोसेसर का उपयोग करने के लिए चूक करता है, लेकिन आप इस डिफ़ॉल्ट व्यवहार को किस उदाहरण में बदलना चाहेंगे?

मुझे याद है कि कहीं न कहीं पढ़ना (मुझे इस लेख को देखना पड़ेगा) कि ओएलटीपी वर्कलोड के लिए आपको समानता (सेट मैक्सपॉप टू 1) को बंद करना चाहिए । मुझे नहीं लगता कि मैं पूरी तरह से समझता हूं कि आप ऐसा क्यों करेंगे।

आप अधिकतम SQL सर्वर (0) तक कब रखेंगे? आप समानता (1) को कब बंद करेंगे? आप विशेष रूप से प्रोसेसर की अधिकतम संख्या के बारे में स्पष्ट रूप से बताएंगे?

क्या समानता का कारण बनता है?

जवाबों:


11

आप आमतौर पर समानता को अक्षम नहीं करना चाहते हैं क्योंकि यह व्यवस्थापक कार्यों के लिए भी इसे अक्षम करेगा। आपकी सबसे अच्छी शर्त उन प्रश्नों को ठीक करना है जो अनुक्रमणिका को जोड़ने या ठीक करने या स्कीमा परिवर्तन पर पूर्ण बनाने के माध्यम से समानता का कारण बन रहे हैं।


आपके अपडेट किए गए सवालों के आधार पर ...

कुछ लोग विक्रेता निर्मित अनुप्रयोगों के लिए MAXDOP को 1 में बदल देंगे क्योंकि वे डेटाबेस या स्कीमा को नियंत्रित नहीं कर सकते हैं और वे पूरे सिस्टम को लेने के लिए एक भी क्वेरी नहीं चाहते हैं।

व्यक्तिगत रूप से मैं हमेशा कुछ दुर्लभ मामलों को छोड़कर MAXDOP को 0 पर रखता हूं।

समानांतरवाद एक निष्पादन योजना के भीतर एक एकल संचालन के कारण होता है, जिसमें एक निष्पादन लागत होती है जो एक पूर्व-सेट सेटिंग (समानांतरता सेटिंग के लिए लागत सीमा) से अधिक हो जाती है। जब ऐसा होता है, तो SQL सर्वर समानांतरवाद में किक करेगा ताकि यह प्रक्रिया को गति देने के प्रयास में अनुरोध को बहु-थ्रेड कर सके। समानता के लिए लागत सीमा के लिए डिफ़ॉल्ट मूल्य है 5. कई ओएलटीपी प्लेटफार्मों में आप इसे 30 या 40 तक उठाना चाहते हैं ताकि समानता केवल वास्तव में महंगे प्रश्नों के लिए किक मार सके।


4

मैंने एसक्यूएल सर्वर (अंतिम सहस्राब्दी, एसक्यूएल 6.5) के साथ अपने सभी समय में किसी भी समानता सेटिंग्स को बंद या संशोधित करने की आवश्यकता नहीं देखी है।

@StanleyJohns उत्तर से आगे बढ़ने के बाद ...
संक्षिप्त, तीखे प्रश्नों के साथ एक ओएलटीपी प्रणाली को लागत सीमा ( "समानता के लिए लागत सीमा" ) पर कभी भी प्रहार नहीं करना चाहिए। यदि आपके पास कुछ प्रश्न हैं जो समानांतर चलते हैं, तो आप इसे कुछ अप्रमाणित के आधार पर प्रतिबंधित क्यों करेंगे

मुझे अभी तक एक शुद्ध OLTP सिस्टम भी नहीं दिख रहा है। चरम पर, शायद वहाँ हैं, लेकिन औसत प्रणाली ने इस पर भी रिपोर्टिंग की है; चाहे इंट्रा-डे हो या रात भर। इन प्रश्नों के समानांतर होने और इससे लाभ होने की संभावना अधिक है।

आज उपलब्ध इतने सारे सीपीयू कोर के साथ वैश्विक रूप से "समानता की अधिकतम डिग्री" सेट करने का एक मामला है यदि आप अंतर को माप और नोटिस कर सकते हैं।

जैसा मैंने कहा, मेरा सुझाव कुछ भी नहीं करना है । @ मर्डनी के समान, लेकिन मैं शामिल करूंगा "शुद्ध ओएलटीपी प्रणाली जैसी कोई चीज नहीं है"

यह कहते हुए कि, कुछ माइलेज BIOS स्तर पर हाइपरथ्रेड कोर को निष्क्रिय कर रहा है, लेकिन यह एक अलग सवाल है ...

इसके अलावा, कृपया देखें


3

समानता का क्या कारण है ?: एक सेटिंग कहा जाता है cost threshold for parallelism। एक बार जब यह सीमा पार हो जाती है तो समानता का उपयोग किया जाता है (यदि आवश्यक शर्तें पूरी हो जाएं)।

एक ओएलटीपी सिस्टम की प्रकृति बड़ी संख्या में त्वरित और लघु लेनदेन है। समानांतरवाद का उपयोग करना कभी-कभी क्वेरी प्रसंस्करण समय को बढ़ाता है, क्योंकि क्वेरी समानांतर में संसाधित होने के लिए विभाजित हो जाएगी, और फिर वापस लौटने से पहले एक साथ सिले। इसलिए आप 1 पर मैक्सडोप सेट करने के लिए सुझाव देखेंगे।

1 पर मैक्सडोप सेट करने का एक लाभ यह है कि समानांतरता डिफ़ॉल्ट रूप से बंद हो जाती है, लेकिन आप इसका उपयोग करके क्वेरी स्तर पर सक्षम कर सकते हैं query hints

डेटा वेयरहाउस सिस्टम या OLAP सिस्टम के लिए जहां बड़े परिणाम सेट लौटाए जाते हैं, समानता का उपयोग करके क्वेरी को विभाजित करने के लिए एक लाभ हो सकता है। यह क्वेरी को प्रसंस्करण समय को कम करने के लिए उपलब्ध कोर को दोहन करने की अनुमति देता है।


2

मैंने कई प्रक्रियाओं में एक जटिल क्वेरी को विभाजित करते हुए देखा है जिसे निष्पादित करने में घंटों लगते हैं - आप इसे आमतौर पर sp_who2 में एक ही स्पाइड के साथ कई प्रविष्टियों के रूप में देख सकते हैं।

इसे अधिकतम 1 में बदलना और एक मिनट से भी कम समय में निष्पादित क्वेरी।

यहां सबक यह है कि जब यह समानता की बात आती है तो इंजन हमेशा इसे ठीक नहीं करता है।


0

हमारे पास 4 कोर के साथ बहुत सारे सर्वर हैं और कुछ में 8 कोर हैं। मैं ऐसे कुछ कोर के साथ सलाह देता हूं कि ओएलटीपी सिस्टम के उपयोगकर्ताओं के लिए सीपीयू (और टाइमआउट मुद्दों) पर प्रतीक्षा से बचने के लिए समानता (मैक्सडॉप) को 1 पर सेट किया जाए। OLAP या रिपोर्टिंग सर्वर के लिए, ऐसे कुछ कोर के साथ, मैं MAXDOP को 2 पर सेट करने और लागत थ्रेसहोल्ड को 30 पर सेट करने की सलाह देता हूं (यह आपके परिदृश्य के लिए उच्च या थोड़ा कम हो सकता है) ताकि केवल सबसे भारी क्वेरी समानांतरवाद का उपयोग करें।

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