जैसा कि काबोइंग ने उल्लेख किया है, MAXDOP(n)
वास्तव में क्वेरी प्रोसेसर में उपयोग किए जा रहे CPU कोर की संख्या को नियंत्रित करता है।
पूरी तरह से निष्क्रिय सिस्टम पर, SQL सर्वर जितनी जल्दी हो सके तालिकाओं को स्मृति में खींचने और स्मृति में उनके बीच जुड़ने का प्रयास करेगा। यह हो सकता है कि, आपके मामले में, एकल सीपीयू के साथ ऐसा करना सबसे अच्छा है। इसका प्रभाव OPTION (FORCE ORDER)
. का उपयोग करने जैसा ही हो सकता है जो क्वेरी ऑप्टिमाइज़र को आपके द्वारा निर्दिष्ट जॉइन के क्रम का उपयोग करने के लिए बाध्य करता है। कुछ मामलों में, मैंने देखा है OPTION (FORCE PLAN)
किसी क्वेरी को निष्पादन समय के 26 सेकंड से घटाकर 1 सेकंड कर दें।
Books Online आगे कहती है कि MAXDOP
. के लिए संभावित मान हैं:
0 - वर्तमान सिस्टम वर्कलोड के आधार पर उपलब्ध सीपीयू की वास्तविक संख्या का उपयोग करता है। यह डिफ़ॉल्ट मान और अनुशंसित सेटिंग है।
1 - समानांतर योजना निर्माण को दबाता है। ऑपरेशन क्रमिक रूप से निष्पादित किया जाएगा।
2-64 - प्रोसेसर की संख्या को निर्दिष्ट मान तक सीमित करता है। वर्तमान कार्यभार के आधार पर कम प्रोसेसर का उपयोग किया जा सकता है। यदि उपलब्ध CPU की संख्या से बड़ा मान निर्दिष्ट किया जाता है, तो उपलब्ध CPU की वास्तविक संख्या का उपयोग किया जाता है।
मुझे यकीन नहीं है कि MAXDOP
. का सबसे अच्छा उपयोग क्या है है, हालांकि मैं एक अनुमान लगाऊंगा और कहूंगा कि यदि आपके पास उस पर 8 विभाजन के साथ एक तालिका है, तो आप निर्दिष्ट करना चाहेंगे MAXDOP(8)
I/O सीमाओं के कारण, लेकिन मैं गलत हो सकता था।
यहां कुछ त्वरित लिंक दिए गए हैं जो मुझे MAXDOP
. के बारे में मिले हैं :
ऑनलाइन पुस्तकें:समानता की डिग्री
MAXDOP विकल्प को कॉन्फ़िगर करने के लिए उपयोग करने के लिए सामान्य दिशानिर्देश