SQL Server 2014 पर अद्यतन आँकड़े w / पूर्ण स्कैन, 2008 R2, 15% पर 100% सीपीयू का उपयोग करता है


10

पूर्ण स्कैन अपडेट आँकड़े SQL सर्वर 2014 पर CPU के 100% का उपयोग क्यों करते हैं, यह समान हार्डवेयर क्षमता के साथ, समान तालिकाओं के लिए SQL Server 2008 R2 पर शायद 20% CPU का उपयोग करता है?

मैं MAXDOPअन्य विकल्पों को देख रहा हूं , और वास्तव में ऐसा कुछ भी नहीं है जो बाहर खड़ा हो। मुझे लगता है कि ऐसी सेटिंग्स हो सकती हैं जो इसका कारण बन सकती हैं, लेकिन सेटिंग्स दोनों डेटाबेस के लिए बहुत समान हैं (उदाहरण के लिए, MAXDOPदोनों के लिए 4 है, दोनों के साथ कई कोर हैं)। दोनों एंटरप्राइज एडिशन हैं।

क्या SQL Server 2014 बनाम SQL Server 2008 R2 में कुछ "अलग" है जो इसे समझा सकता है? मेरे पास दोनों सर्वरों के लिए 90% मेमोरी विकल्प है। क्या देखना है पर कोई विचार?

मैं SQL Server 2008 R2 / SP3 और SQL Server 2014 / SP2 का उपयोग करके दो सर्वरों पर सप्ताह में एक बार पूर्ण (100%) स्कैन के साथ अपडेट आंकड़े चलाता हूं, और डेटाबेस में समान संरचना है। 2008 R2 सर्वर पर दो बहुत बड़ी तालिकाओं के अपडेट आँकड़े में कई घंटे लगते हैं, जो कि मैं उम्मीद करता हूं, लेकिन सीपीयू 20% से कम रहता है या इसलिए पूरे समय का उपयोग होता है। हालांकि, 2014 के सर्वर पर, सीपीयू लगभग 40 मिनट के लिए 100% हो जाता है। 2014 सर्वर पर टेबल थोड़ी छोटी हैं। मैं SQL मॉनिटर विश्लेषण मेनू का उपयोग करके इसे देखता हूं।

यहाँ 2014 SQL सर्वर पर ओला लॉग फ़ाइल का आउटपुट है, CPU लगभग 2:10 से 2:45 तक 100% हो जाता है:

Date and time: 2017-06-24 02:10:20  
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000005_15502E78] WITH FULLSCAN  
Outcome: Succeeded  
Duration: 00:07:48  
Date and time: 2017-06-24 02:18:08  
Date and time: 2017-06-24 02:18:08  
Command: UPDATE STATISTICS [InVA].[dbo].[AuditField] [_WA_Sys_00000006_15502E78] WITH FULLSCAN  
Outcome: Succeeded  
Duration: 00:32:22  
Date and time: 2017-06-24 02:50:30  

यहाँ उपरोक्त दो आँकड़ों के लिए 2008 R2 SQL सर्वर पर ओला लॉग फ़ाइल का आउटपुट है, लेकिन CPU शायद 15% तक जाता है:

Date and time: 2017-06-24 03:30:32  
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000003_0425A276] WITH FULLSCAN  
Outcome: Succeeded  
Duration: 00:05:00  
Date and time: 2017-06-24 03:35:32  
Date and time: 2017-06-24 03:35:32  
Command: UPDATE STATISTICS [InGA].[dbo].[AuditField] [_WA_Sys_00000004_0425A276] WITH FULLSCAN  
Outcome: Succeeded  
Duration: 00:52:31  
Date and time: 2017-06-24 04:28:03

मैं उन्हें सर्वर मैक्सडोप = 1 के साथ नहीं चला सकता क्योंकि यह सभी समानांतर योजना पीढ़ी को समाप्त करता है, और इससे एप्लिकेशन को नुकसान हो सकता है। मैं विपरीत दिशा में जाने और इसे 8 तक बढ़ाने की योजना बनाता हूं (बॉक्स पर 16 कोर हैं) और देखें कि क्या होता है। सीपीयू पेग होने की अवधि को कम करने के लिए तेजी से जा सकता है। यह काम चलता है जबकि उपयोगकर्ता ज्यादातर चले जाते हैं।


क्या आपने जाँच की कि क्या यह प्रक्रिया 2008 R2 सर्वर पर IO बाध्य है? क्या tempdbविन्यास एक ही है? इसका उपयोग UPDATE STATISTICSचल रहा है, जबकि यह भी एक मुद्दा हो सकता है।
16

1
मुझे भी संदेह होगा कि समानता शायद अपराधी है। क्या आपने संयोग से लागत के लिए समानता की जाँच की है? इसके अलावा, दोनों बॉक्स से पूर्ण sp_configure सूची प्राप्त करना और उन्हें देखने के लिए अलग-अलग क्या हो सकता है, यह एक अच्छा विचार हो सकता है।
DBADON

जवाबों:


1

SQL सर्वर में बहुत सारे विभिन्न विकल्पों के आधार पर आँकड़े अपडेट समानांतर जा सकते हैं:

  • समानांतरता के लिए लागत सीमा - एक क्वेरी समानांतरता ट्रेन की सवारी करने के लिए यह उच्च होनी चाहिए। आपके दो सर्वरों में अलग-अलग CTFP सेटिंग्स हो सकती हैं जो 2008R2 अपडेट को सिंगल-थ्रेडेड करने का कारण बनती हैं, जबकि 2014 वाला मल्टी-थ्रेडेड जा सकता है।
  • समानांतरवाद की मैक्स डिग्री - यह बताती है कि एक क्वेरी कितने कोर का उपयोग कर सकती है, कम से कम, यदि SQL सर्वर उस पर समानांतर करने का निर्णय लेता है। 2008R2 बॉक्स में MAXDOP सेट 1 हो सकता है, जबकि 2014 बॉक्स में 0 (असीमित) के डिफ़ॉल्ट पर सेट हो सकता है।
  • रिसोर्स गवर्नर - यह एंटरप्राइज एडिशन फीचर आपको अलग-अलग MAXDOPs के लिए उपयोगकर्ताओं या एप्लिकेशन के विभिन्न समूहों को थ्रॉटल करने देता है।

SQL सर्वर (2016 और नए) के बाद के संस्करणों में, यह और भी जटिल हो जाता है:

  • डेटाबेस-स्तर के विकल्प बंद - आप डेटाबेस पर राइट-क्लिक कर सकते हैं, गुणों में जा सकते हैं और उस डेटाबेस के लिए MAXDOP स्तर सेट कर सकते हैं।
  • सांख्यिकी समानता के संकेत - 2016 के SP2 में शुरू, सांख्यिकी निर्माण और अपडेट स्टेटमेंट MAXDOP संकेत स्वीकार करते हैं

जैसा कि आपने उल्लेख किया है, आपका 2008R2 एक एकल-थ्रेडेड हो रहा है, जबकि 2014 एक बहु-थ्रेडेड हो रहा है (इस प्रकार तेजी से खत्म हो रहा है, लेकिन सीपीयू को अधिकतम करते हुए यह चलता है।)

अपने आँकड़े नौकरियों के लिए सही संतुलन खोजने के लिए, इस बारे में सोचें:

  • डेटाबेस में एक ही समय में क्या अन्य कार्यभार हो रहे हैं ? क्या आप संक्षिप्त अवधि के दौरान बॉक्स पर हावी हो सकते हैं? उदाहरण के लिए, डेटा वेयरहाउस में जो अधिकांश सप्ताहांत घंटों के दौरान बेकार बैठते हैं, मैंने देखा है कि जब वे किसी को भी सर्वर का उपयोग नहीं करते हैं, तो वे फुलस्कैन के साथ आँकड़े अपडेट पर कड़ी मेहनत करते हैं। भारी शुल्क वाले लेन-देन वाले वातावरण में, आपको रखरखाव कार्यों के लिए कम प्रभाव का उपयोग करना शुरू करना होगा यदि उपयोगकर्ता आधी रात के समय भी शिकायत करते हैं।
  • क्या फुलस्कैन वास्तव में आवश्यक है? क्या आप ऐसे प्रश्नों को देख रहे हैं जो केवल अच्छी योजनाओं को प्राप्त करते हैं जब आप फुलस्कैन विकल्प का उपयोग करते हैं, या क्या आप इसे केवल एक सर्वोत्तम-व्यवहार के रूप में कर रहे हैं? जैसे-जैसे आपका डेटाबेस बढ़ता है, यदि आपके हार्डवेयर निवेश में गति नहीं रहती है, तो आपको फुलस्कैन करने के बजाय सांख्यिकी नमूने में ट्रेडऑफ़ बनाना शुरू करना पड़ सकता है।
  • क्या आप आँकड़े कम बार अपडेट कर सकते हैं? उदाहरण के लिए, प्रत्येक सप्ताह के अंत में अपने आँकड़ों का 1/4 अपडेट करें और फिर हर महीने, हर चीज़ को आँकड़ों का अद्यतन मिलेगा?
  • क्या आप कम वस्तुओं को अपडेट कर सकते हैं? अक्सर मैं लोगों को विशाल ऑडिट या आर्काइव टेबल पर भी आँकड़े अपडेट करते हुए देखता हूँ क्योंकि कुछ दर्जन नए आवेषण किए गए थे, लेकिन उन आवेषण वास्तव में तालिका पर आँकड़ों को प्रभावित नहीं करते हैं (और किसी को भी इसे क्वेरी नहीं करते हैं।)

0

सामुदायिक विकि उत्तर :

सर्वश्रेष्ठ अनुमान: आंकड़ों को अद्यतन करने के लिए चुनी गई योजना 2014 के बॉक्स पर 2008 R2 बॉक्स की तुलना में या तो समानांतर, या अधिक समानांतर है।

fullscan2005 के बाद से, और 2016 के साथ शुरू होने वाले नमूनों के लिए समानांतर अद्यतन आँकड़े SQL सर्वर डेटाबेस इंजिन ब्लॉग पर Gjorgji Gjeorgjievski द्वारा SQL Server 2016 में क्वेरी ऑप्टिमाइज़र परिवर्धन देखें ।

यदि आपके पास एंटरप्राइज़ संस्करण है, तो आप अपने रखरखाव कार्य द्वारा उपयोग किए जा रहे सीपीयू को सीमित करने के लिए संसाधन गवर्नर का उपयोग कर सकते हैं ।

कनेक्ट सुझाव के लिए मतदान पर भी विचार करें जेवियर विलेगस द्वारा अपडेट आँकड़े के लिए पैरामीटर जोड़ेंMAXDOP

संबंधित प्रश्नोत्तर: समानांतर सांख्यिकी अद्यतन

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