2008-08-18 16 views
9

हमारे SQL सर्वर 2005 क्लस्टर पर स्पोरैडिक, यादृच्छिक क्वेरी टाइमआउट हैं। मेरे पास कुछ ऐप्स हैं जो इसका उपयोग करते हैं, इसलिए मैं जांच में मदद कर रहा हूं। नियमित ओएल 'परफमन में% CPU समय देखते समय, आप निश्चित रूप से इसे बाहर देख सकते हैं। हालांकि, एसक्यूएल गतिविधि मॉनीटर केवल संचयी सीपीयू और आईओ समय को एक प्रक्रिया द्वारा उपयोग किया जाता है, न कि यह सही उपयोग कर रहा है, या एक विशिष्ट समय सीमा पर। शायद मैं प्रोफाइलर का उपयोग कर सकता हूं और एक ट्रेस चला सकता हूं, लेकिन इस क्लस्टर का बहुत अधिक उपयोग किया जाता है और मुझे डर है कि मैं एक घास के मैदान में सुई की तलाश में हूं। क्या मैं गलत पेड़ को भड़क रहा हूँ?SQL सर्वर प्रदर्शन समस्याओं की पहचान

क्या किसी के पास इस माहौल में महंगे प्रश्न/प्रक्रियाओं को ट्रैक करने के लिए कुछ अच्छी विधियां हैं?

उत्तर

12

यह आपको औसत CPU समय से शीर्ष 50 बयान, अन्य लिपियों के लिए यहाँ की जाँच दे देंगे: ठेठ लोड के अंतर्गत कुछ मिनट के लिए http://www.microsoft.com/technet/scriptcenter/scripts/sql/sql2005/default.mspx?mfr=true

SELECT TOP 50 
     qs.total_worker_time/qs.execution_count as [Avg CPU Time], 
     SUBSTRING(qt.text,qs.statement_start_offset/2, 
      (case when qs.statement_end_offset = -1 
      then len(convert(nvarchar(max), qt.text)) * 2 
      else qs.statement_end_offset end -qs.statement_start_offset)/2) 
     as query_text, 
     qt.dbid, dbname=db_name(qt.dbid), 
     qt.objectid 
FROM sys.dm_exec_query_stats qs 
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt 
ORDER BY 
     [Avg CPU Time] DESC 
2

प्रोफाइलर "एक घास के मैदान में सुई" जैसा प्रतीत हो सकता है, लेकिन यह कुछ उपयोगी हो सकता है। कुछ मिनटों के लिए इसे चलाने का प्रयास करें, जबकि डेटाबेस सामान्य लोड के अधीन हैं, और देखें कि क्या कोई प्रश्न किसी भी तरह से बहुत अधिक समय या संसाधनों को छेड़छाड़ करने के रूप में खड़ा है या नहीं। हालांकि इस तरह की स्थिति कुछ सामान्य मुद्दों को इंगित कर सकती है, लेकिन यह एक या दो साइटों के साथ कुछ विशिष्ट मुद्दों से भी जुड़ी हो सकती है, जो कि कुछ परिस्थितियों में गड़बड़ चीजों को बोर्ड में बहुत खराब प्रदर्शन का कारण बनती है।

4

हम क्वेस्ट के Spotlight उत्पाद का उपयोग करते हैं। जाहिर है यह समय और धन में निवेश है, इसलिए यह आपको अल्प अवधि में मदद नहीं कर सकता है, लेकिन यदि आपके पास एक बड़ा SQL वातावरण है तो यह बहुत उपयोगी है।

3

याकोव कहते हैं, चलाने प्रोफाइलर और एक करने के लिए परिणामों को सहेजने तालिका जो आपको परिणामों के खिलाफ प्रश्नों को चलाने की अनुमति देगी, जिससे किसी भी संसाधन होगिंग प्रश्नों को खोजना अधिक आसान हो जाता है।

2

रनर प्रोफाइलर और उन प्रश्नों के लिए फ़िल्टर करें जो पढ़ने की एक निश्चित संख्या से अधिक लेते हैं। जिस एप्लिकेशन पर मैंने काम किया था, उसके लिए 5000 से अधिक पढ़ने वाले किसी गैर-रिपोर्टिंग क्वेरी को दूसरी बार देखने के लायक थे। आपके ऐप में एक अलग सीमा हो सकती है, लेकिन विचार वही है।

2

This utility एरलैंड सोमरस्क द्वारा बहुत ही उपयोगी है।

यह एक संग्रहीत प्रक्रिया है जिसे आप अपने डेटाबेस में जोड़ते हैं। जब भी आप देखना चाहते हैं कि कौन से प्रश्न सक्रिय हैं और ताले, ब्लॉक इत्यादि की अच्छी तस्वीर प्राप्त करें, तो मैं इसे नियमित रूप से उपयोग करता हूं जब चीजें गड़बड़ लगती हैं।

4

मुझे Performance Dashboard Reports बहुत उपयोगी होने के लिए मिला है। वे माइक्रोसॉफ्ट द्वारा आपूर्ति की गई कस्टम आरएस रिपोर्ट का एक सेट हैं। आपको बस अपने क्लाइंट पीसी पर इंस्टॉलर चलाने और SQL सर्वर इंस्टेंस पर setup.sql चलाने के लिए है।

उसके बाद, एसएसएमएस और गेटो रिपोर्ट्स -> कस्टम रिपोर्ट्स में डेटाबेस पर राइट क्लिक करें (कोई फर्क नहीं पड़ता)। \ NGoogle \ n \ आपको केवल एक बार ऐसा करने की ज़रूरत है। पहली बार, यह रिपोर्ट सूची में दिखाई देगा।

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

संबंधित मुद्दे