समानांतर सांख्यिकी अद्यतन


14

SQL Server 2008 या बाद में, UPDATE STATISTICS WITH FULLSCANएक एकल थ्रेडेड ऑपरेशन है या यह समानता का उपयोग कर सकता है? डिफ़ॉल्ट नमूने के साथ अपडेट के आंकड़ों के बारे में - क्या यह समानता का उपयोग कर सकता है? मुझे MAXDOPअपडेट आँकड़ों के साथ निर्दिष्ट करने वाला कोई विकल्प दिखाई नहीं देता है ।

जवाबों:


22

SQL सर्वर 2005 के बाद से समानांतर आँकड़े अद्यतन उपलब्ध है। यह TechNet लेख, "Microsoft SQL Server 2005 में क्वेरी ऑप्टिमाइज़र द्वारा प्रयुक्त सांख्यिकी" में प्रलेखित है :

लेख निकालना

जहां एक पूर्ण स्कैन किया जाता है (चाहे स्पष्ट रूप से अनुरोध किया गया हो या नहीं) डेटा एकत्र करने के लिए उत्पन्न आंतरिक क्वेरी का सामान्य रूप है:

SELECT
    StatMan([SC0])
FROM 
(
    SELECT TOP 100 PERCENT
        [Column] AS [SC0]
    FROM [Table] WITH (READUNCOMMITTED)
    ORDER BY [SC0]
) AS _MS_UPDSTATS_TBL
OPTION (MAXDOP 16)

सूचना MAXDOPसंकेत नहीं है (हालांकि वहाँ एक उपयोगकर्ता संकेत मैन्युअल निर्दिष्ट करने के लिए के लिए कोई रास्ता नहीं है)। जहां सैंपल किए गए आंकड़े इकट्ठे किए जाते हैं, आंतरिक क्वेरी TABLESAMPLEक्लॉज का उपयोग करती है, जो समानता को रोकती है। इंजन MAXDOP 1आंतरिक क्वेरी पर एक संकेत भी उत्पन्न करता है , जो थोड़ा बेमानी है।

यदि आपको कभी समानता को कम करने की आवश्यकता है , MAXDOPतो आंतरिक क्वेरी में संकेत को संसाधन गवर्नर (केवल एंटरप्राइज) का उपयोग करके ओवरराइड किया जा सकता है ।

SQL सर्वर 2016 समानांतर नमूना आँकड़े अद्यतन जोड़ता है


1

SQL सर्वर 2016 SP2 से प्रारंभ करके आप MAXDOPविकल्प का उपयोग कर सकते हैं ।

अद्यतन बनाता है के लिए MAXDOP विकल्प के लिए सृजन सांख्यिकी और अद्यतन सांख्यिकी कथन :

यह अद्यतन Microsoft SQL Server 2016 और 2017 में CREATE STATISTICS और UPDATE STATISTICS स्टेटमेंट के लिए MAXDOP विकल्प के लिए समर्थन जोड़ता है। यह आपको डेटाबेस या सर्वर स्तर पर निर्दिष्ट अधिकतम समानता (MAXDOP) के लिए डिफ़ॉल्ट सेटिंग को ओवरराइड करने में सक्षम बनाता है।

नोट: यदि संसाधन गवर्नर का उपयोग किया जाता है तो कार्यभार समूह MAX_DOP सेटिंग द्वारा समांतरवाद की परिणामी डिग्री को कैप किया जाता है।

उदाहरण के लिए, मान लें कि Sales.SalesOrderDetail तालिका का उपयोग किया गया है और इस पर पहले ही कई आँकड़े बनाए जा चुके हैं। इस स्थिति में, निम्न स्क्रिप्ट 8 के बराबर समानता की डिग्री के साथ प्रत्येक आंकड़े को अद्यतन करता है।

UPDATE STATISTICS Sales.SalesOrderDetail WITH MAXDOP = 8

-3

अद्यतन सांख्यिकी में आंतरिक समानता का कोई प्रकार नहीं है। इससे कोई फर्क नहीं पड़ता कि आप फुलस्कैन या सैमलिंग के साथ चल रहे हैं। बेशक, आप कई SQL सर्वर नौकरियों या कुछ अन्य विरोधाभासों के माध्यम से, कई अलग-अलग कनेक्शनों पर एक बार में कई अद्यतन कमांड चला सकते हैं। हार्डवेयर और डेटा के साथ आपकी सटीक स्थिति के आधार पर, आप पा सकते हैं कि बस टेबल को रीइंडेक्स करना फुलस्कैन के साथ अद्यतन सांख्यिकी और संभवतः एक बेहतर विकल्प की तुलना में तेज़ है।


मैं मार्क डाउन के लिए माफी माँगता हूँ, लेकिन आपको इस बारे में कोई जानकारी नहीं है कि आप क्या बात कर रहे हैं। इस श्वेतपत्र से msdn.microsoft.com/en-us/library/dd535534(v=sql.100).aspx " फुलस्कैन के लिए समानांतर आँकड़े एकत्रित करना: फुलस्कैन के साथ इकट्ठा किए गए आँकड़ों के लिए, एक एकल सांख्यिकी ऑब्जेक्ट का निर्माण समानांतर में किया जा सकता है। गैर-विभाजित और विभाजित टेबल दोनों। " हालाँकि मैं 30 मिलियन पंक्तियों की मेज पर पूर्ण स्कैन के साथ UPDATE STATISTICS का उपयोग करते समय समानता नहीं देख पा रहा हूँ
SQL शिक्षार्थी

इसके अलावा, अपडेट स्टेट स्कीमा स्टेबिलिटी लॉक लेता है, इसलिए यदि आप अन्य अपडेट आँकड़े चलाते हैं तो यह पहले पूरा होने तक प्रतीक्षा करेगा।
SQL शिक्षार्थी

4
@ SQLLearner: कोई अपराध नहीं है, लेकिन इस उत्तर की शुद्धता की परवाह किए बिना, आप यह सवाल क्यों पूछ रहे हैं कि क्या आपने उस श्वेतपत्र को पढ़ा है? यह आपको आपके द्वारा पूछी गई हर चीज का जवाब देता है। यदि आप अपने विशिष्ट परिदृश्य के लिए समानता नहीं देख रहे हैं, तो कृपया उस प्रश्न को संपादित करने के लिए, और किसी भी अन्य विवरण को पुन: प्रस्तुत करें।
जॉन सीगल

जॉन सिगेल, प्रश्न को पोस्ट करने के बाद व्हाइटपेपर को पाया और पढ़ा, लेकिन वेब पर अभी भी यह सुनिश्चित नहीं है कि अपडेट स्टेटिस समानता का उपयोग कर सकता है या नहीं।
SQL शिक्षार्थी

4
आप श्वेत पत्र और sql2008 के संबंध में सही हैं। मैंने सिर्फ वह श्वेत पत्र पढ़ा; मेरे सिर की जानकारी पुरानी है। मुझे या तो sql2005 या शायद यहां तक ​​कि sql2000 के साथ रीइंडेक्सिंग के संबंध में कई समस्याएं थीं, अपडेट स्टेटमेंट, फुलस्कैन बनाम सैम्पल, नौकरियों के लिए आवश्यक समय और सांख्यिकी पृष्ठों पर डेटा की स्टोकेस्टिक गुणवत्ता। मुझे लगता है कि उस दर्द का सारा पानी अब पुल के नीचे है। मैं कहूंगा कि आप समानांतर में अलग-अलग तालिकाओं पर अद्यतन स्थिति को चला सकते हैं, लेकिन ऐसा लगता है कि यह मूल्य से अधिक परेशानी की तरह है और इसके लायक होने के लिए आपके पास बहुत अधिक I / O विवाद हो सकता है।
डायन स्ट्रेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.