समानांतर सर्वर सेट: PARALLEL_DEGREE_LIMIT समानांतरवाद की डिग्री को सीमित करता है, लेकिन अगर आपकी क्वेरी सॉर्ट या समूहबद्ध हो रही है तो समानांतर प्रक्रियाओं की संख्या दो बार हो सकती है (दो-सर्वर सेट अंतर-प्रक्रिया समानांतरता को सक्षम करने के लिए)। यह बताता है कि क्यों आप 24 की सीमा के साथ भी 48 समानांतर प्रक्रियाओं को देखेंगे। ऐसा तब भी होता है जब आप डीओपी को सीमित करने के लिए संसाधन प्रबंधक का उपयोग करते हैं।
समानांतर संकेत: PARALLEL_DEGREE_LIMIT केवल उन बयानों पर लागू होता है जो समानता के ऑटो डिग्री का उपयोग करते हैं। कोई भी कथन जो हार्ड-कोडित डिग्री, या यहां तक कि किसी भी प्रकार के ऑब्जेक्ट-लेवल समानांतर संकेत का उपयोग करता है, सीमा की उपेक्षा करेगा। यदि आपके पास वे संकेत हैं, तो यह समझा सकता है कि आप 96 बार क्यों देखते हैं।
IO कैलिब्रेट करें: हो सकता है कि स्वचालित DOP का उपयोग नहीं किया जा रहा है, और इस प्रकार सीमा का पालन नहीं किया जा रहा है, क्योंकि IO को कैलिब्रेट नहीं किया गया था । यह क्वेरी आपको बताएगी कि क्या IO कैलिब्रेटेड था:
select * from V$IO_CALIBRATION_STATUS;
मैंने इस समस्या को पहले देखा है, लेकिन मेरी वर्तमान प्रणाली कैलिब्रेटेड नहीं है और स्वचालित डीओपी ठीक काम करने लगता है। आप बता सकते हैं कि क्या यह वास्तव में व्याख्या योजना के नोट्स अनुभाग को देखकर एक मुद्दा है। यदि आप ऐसा कुछ देखते हैं जैसे - automatic DOP: Computed Degree of Parallelism is 2
आप ठीक हैं, लेकिन आप देखना नहीं चाहते हैं automatic DOP: skipped because of IO calibrate statistics are missing
।
PARALLEL_MAX_SERVERS बढ़ाएं: समानांतर सर्वर से बाहर चलने के बारे में चिंता करने के बजाय, मैं आपको सलाह दूंगा कि आप PARALLEL_MAX_SERVERS को महत्वपूर्ण रूप से बढ़ाएं। आपको अपनी स्मृति सेटिंग के आधार पर कम से कम डिफ़ॉल्ट मान , PARALLEL_THREADS_PER_CPU x CPU_COUNT x समवर्ती_परिवर्तमान x 5, 240 और 960 के बीच वापस जाने का प्रयास करना चाहिए ।
वे उच्च संख्याएँ कई DBAs के लिए हास्यास्पद लगती हैं, लेकिन वे वास्तव में निम्नलिखित कारणों से बहुत मायने रखते हैं:
- अधिकांश लोगों की तुलना में ओरेकल समानांतर सर्वर अधिक हल्के वजन के होते हैं। (और शायद ही कभी कोई इसका परीक्षण करता है, वे सिर्फ एक स्थिति पाते हैं जहां एक बड़ा डीओपी एक समस्या का कारण बनता है और यह मान लेता है कि उच्च डीओपी हमेशा खराब होता है।)
- GUI टूल में एक एडहॉक क्वेरी को चलाना आम बात है जो केवल पहले 50 पंक्तियों को पुनर्प्राप्त करता है, लेकिन फिर भी दर्जनों समानांतर सर्वर का उपयोग करता है। जब तक PARALLEL_MAX_SERVERS बहुत कम नहीं हैं, तब तक ये क्वेरीज़ किसी भी महत्वपूर्ण संसाधन का उपभोग नहीं कर रही हैं। तब लोगों को पूरी तरह से उचित प्रश्नों को चलाने के लिए चिल्लाया जाता है, जिससे कुछ बदसूरत स्थिति हो सकती है।
- एक एकल क्वेरी के लिए एक बहुत बड़ी डीओपी हमेशा खराब नहीं होती है। हर कोई मानता है कि यदि आप डीओपी को बढ़ाते रहेंगे, तो ओवरहेड बहुत अधिक हो जाएगा और प्रदर्शन में काफी गिरावट आएगी। लेकिन कई प्रणालियों पर मैंने पाया है कि एक हास्यास्पद उच्च डीओपी बेहतर प्रदर्शन को जन्म देगा, हालांकि निश्चित रूप से कम रिटर्न है, और यह अन्य सत्रों के लिए बहुत अनुचित हो सकता है। लेकिन सिर्फ अनुमान नहीं है, यह परीक्षण; एक प्रश्न लें और इसे 1000 तक के सभी प्रकार के डीओपी के साथ चलाएं। आप आश्चर्यचकित हो सकते हैं।
- हां, बहुत ज्यादा समानतावाद बुरा हो सकता है। लेकिन सिस्टम के लिए क्या बदतर है, सत्रों की इष्टतम संख्या से थोड़ा अधिक है, या सीरियल के लिए एक क्वेरी को मजबूर करना और मूल रूप से एक महत्वपूर्ण नौकरी को मारना है? मनमानी सीमाएं शुरू करने से पहले आपको सिस्टम की निगरानी करनी चाहिए।