MS SQL सर्वर की प्रभावशीलता की निगरानी करना। प्रायोगिक उपकरण

SQL Profiler एक सॉफ्टवेयर टूल है जिसका उपयोग SQL सर्वर को ट्रेस करने के लिए किया जाता है। "ट्रेस" - SQL सर्वर 2008 के संचालन के बारे में जानकारी एकत्र करने के लिए एक सत्र

मुख्य उद्देश्य:

SQL Profiler का उपयोग प्रशासकों द्वारा किया जाता है:

· आवेदन का विश्लेषण;

सर्वर को भेजे गए अनुरोधों की इष्टतमता का निर्धारण करना;

· ट्रांजैक्ट-एसक्यूएल कमांड की पहचान करना जो त्रुटि उत्पन्न करते हैं;

लंबे समय तक उपयोगकर्ता गतिविधि के बारे में जानकारी एकत्र करना;

वास्तविक समय में सर्वर के संचालन की निगरानी करना।

नए अवसरों:

ए। विश्लेषण सेवा रूपरेखा

बी। इंटीग्रेशन सर्विसेज इवेंट प्रोफाइलिंग

सी। कमांड निष्पादन जानकारी रिकॉर्ड करते समय प्रदर्शन मॉनिटर से मीटर रीडिंग रिकॉर्ड करने की क्षमता;

डी। कई नई घटनाओं और सूचना स्रोतों को प्रोफाइलर में जोड़ा गया है जिन्हें ट्रेस फ़ाइल में लॉग करने के लिए चुना जा सकता है;

एफ। प्रोफाइलर विंडो में घटनाओं को समूहबद्ध करने की क्षमता।

SQL सर्वर प्रोफाइलर के साथ कार्य करना

1. मेनू से SQL सर्वर प्रोफाइलर लॉन्च करें स्टार्टà प्रोग्राम्सà एसक्यूएल सर्वर 2008à प्रदर्शन उपकरणà एसक्यूएल सर्वर प्रोफाइलर.

2. खुलने वाली विंडो में, मेनू में फ़ाइलचुनते हैं नया निशानऔर SQL Server 2008 सर्वर से कनेक्ट करें जिसकी हम निगरानी करेंगे।

3. विंडो में सत्र पैरामीटर कॉन्फ़िगर करें ट्रेस गुण, जो ट्रेस सत्र शुरू करने से पहले स्वचालित रूप से खुलता है (चित्र 8.1 देखें)।

चावल। 8.1.ट्रेस सत्र पैरामीटर सेट करना

ए। टैब में आमसूची से चुनें टेम्पलेट का प्रयोग करेंसबसे उपयुक्त टेम्पलेट। मेनू का उपयोग करके टेम्पलेट का चयन किया जाता है फ़ाइल à टेम्पलेट्स SQL सर्वर प्रोफाइलर में। प्रारंभ में, आपके पास अपने निपटान में आठ टेम्पलेट हैं:

1). मानक (डिफ़ॉल्ट)- एक डिफ़ॉल्ट टेम्प्लेट जो आपको निष्पादन के लिए चलाए जाने वाले सभी संग्रहीत कार्यविधियों और Transact-SQL कमांड का ट्रैक रखने की अनुमति देता है;

2). SP_गणना- निष्पादन के लिए शुरू की गई संग्रहीत प्रक्रियाओं और कार्यों के बारे में जानकारी का संग्रह, नामों द्वारा क्रमबद्ध;

3). टीएसक्यूएल- सर्वर पर निष्पादन के लिए लॉन्च किए गए सभी ट्रांजैक्ट-एसक्यूएल कमांड के बारे में जानकारी का संग्रह, उपयोगकर्ता प्रक्रियाओं की पहचानकर्ता और प्रारंभ समय को इंगित करता है;

4). टीएसक्यूएल_अवधि- पिछले टेम्पलेट के समान है, लेकिन उस समय के बारे में जानकारी के बजाय जब टीएसक्यूएल कमांड लॉन्च किया गया था, इसे निष्पादित करने में लगने वाला समय दर्ज किया गया है;

5). TSQL_समूहीकृत- ट्रांजैक्ट-एसक्यूएल कमांड कोड और इसके लॉन्च के समय के बारे में जानकारी के अलावा, एप्लिकेशन नाम, ओएस में उपयोगकर्ता खाता और कनेक्ट करने के लिए उपयोग किए जाने वाले उपयोगकर्ता खाते के बारे में जानकारी भी दर्ज की जाती है;



6). टीएसक्यूएल_रीप्ले- निष्पादित ट्रांजैक्ट-एसक्यूएल कमांड के बारे में सबसे विस्तृत जानकारी रिकॉर्ड करना;

7). TSQL_SPs- संग्रहीत कार्यविधि (SP: प्रारंभ) की शुरुआत के बारे में जानकारी दर्ज करने के अलावा, संग्रहीत कार्यविधि कमांड (SP: StmtStarting) में से प्रत्येक के निष्पादन के बारे में जानकारी दर्ज की जाती है;

8). ट्यूनिंग- डेटाबेस ट्यूनिंग सलाहकार द्वारा आवश्यक जानकारी एकत्र करने के लिए उपयोग किया जाता है।

बी। टैब में आमयदि ट्रेस जानकारी संग्रहीत करने के लिए स्थान निर्दिष्ट करना आवश्यक है:

एक)। ट्रेस जानकारी को फ़ाइल में लॉग किया जा सकता है (डिफ़ॉल्ट रूप से 5MB):

· पैरामीटर फ़ाइल रोलओवर सक्षम करेंयह निर्धारित करता है कि एक फ़ाइल भरते समय अगली फ़ाइल स्वचालित रूप से बनाई जाएगी या नहीं। अगली फ़ाइल का नाम वही होगा जो पिछली फ़ाइल का नाम था, लेकिन उसके नाम (1, 2, 3, आदि) में एक नंबर जोड़ा जाएगा।

· पैरामीटर सर्वर डेटा का पता लगाता हैट्रेस जानकारी की रिकॉर्डिंग की विश्वसनीयता बढ़ाने के लिए इस्तेमाल किया जा सकता है। जब यह चेक बॉक्स चुना जाता है, तो सर्वर ट्रेस जानकारी के संसाधन को संभाल लेगा।

2))। ट्रेस जानकारी को SQL सर्वर तालिका में संग्रहीत किया जा सकता है। कॉलम के आवश्यक सेट वाली तालिका स्वचालित रूप से बनाई जाएगी।

3))। पैरामीटर का उपयोग करना ट्रेस स्टॉप टाइम सक्षम करेंआप उस समय को निर्दिष्ट कर सकते हैं जब ट्रेसिंग स्वचालित रूप से अक्षम हो जाएगी।

सी। टैब में घटना चयनजानकारी एकत्र करने के लिए मापदंडों का निर्धारण। इस टैब की तालिका में, आपको आवश्यक घटनाओं (पंक्तियों में) और उनके लिए दर्ज की जाने वाली जानकारी (कॉलम में) का चयन करना होगा। सभी पंक्तियों और स्तंभों को प्रदर्शित करने के लिए, आपको बक्सों को चेक करना होगा सभी कार्यक्रम दिखाएंतथा सभी कॉलम दिखाएं.

एक)। बटन का उपयोग करना कॉलम फिल्टर(कॉलम फ़िल्टर) आवश्यक जानकारी एकत्र करने के लिए फ़िल्टर सेट करें (एक विशिष्ट डेटाबेस, या एक विशिष्ट एप्लिकेशन, या एक विशिष्ट उपयोगकर्ता में की गई क्रियाओं को ट्रैक करें) - पसंदया उसके जैसा नहीं;

2))। बटन का उपयोग करना कॉलम व्यवस्थित करें(कॉलम व्यवस्थित करें) प्रोफाइलर में प्रदर्शित या रिकॉर्ड करने के लिए कॉलम के क्रम को समूह डेटा - समूह अनुभाग की क्षमता के साथ अनुकूलित करें।

4. सभी ट्रेस पैरामीटर निर्दिष्ट करने के बाद, बटन पर क्लिक करें दौड़ना(भागो) (अंजीर 8.2 देखें)

चावल। 8.2.ट्रेस सत्र के दौरान जानकारी देखना

विंडो का ऊपरी भाग सर्वर पर होने वाली घटनाओं को प्रदर्शित करता है, और निचला भाग प्रत्येक घटना पर विस्तृत जानकारी प्रदान करता है (उदाहरण के लिए, SQL कमांड कोड)।

ट्रेस विंडो में उपलब्ध सुविधाएँ:

1. यदि टैब कॉलम व्यवस्थित करेंटेम्पलेट के गुणों में आपने समूह के लिए स्तंभों का चयन किया है, आप इन स्तंभों के आधार पर व्यूपोर्ट में रिकॉर्ड को समूहित कर सकते हैं। इस उद्देश्य के लिए मेनू में रायएक आदेश है समूहीकृत दृश्य;

2. यदि सूची समूहकेवल एक कॉलम रखा गया है, तो आपके पास प्रदर्शन मोड का उपयोग करने का अवसर है समेकित दृश्य(अंजीर देखें। 8.3)। यह मोड कमांड का उपयोग करके सक्षम किया गया है समेकित दृश्यएक ही मेनू से राय.

चावल। 8.3.प्रदर्शन प्रणाली समेकित दृश्य

3. आप फाइलों में सहेजी गई घटनाओं को खोल सकते हैं और प्रोफाइलर में टेबल ट्रेस कर सकते हैं। मेनू का उपयोग करके लॉग किए गए कार्यों को दोहराना भी संभव है फिर से खेलना;

4. आप ट्रेस जानकारी को सिस्टम मॉनिटर के प्रदर्शन काउंटर से लिंक कर सकते हैं। इसके लिए:

ट्रेस सत्र को परिभाषित करें जिसके दौरान कॉलम के लिए जानकारी दर्ज की जानी चाहिए समय शुरूतथा अंतिम समय;

किसी फ़ाइल या तालिका में सूचना रिकॉर्डिंग के साथ ट्रेस सत्र प्रारंभ करें। इसके साथ ही एक फाइल में मीटर रीडिंग का प्रोटोकॉल इकट्ठा करें प्रदर्शन निरीक्षक;

प्रोफाइलर में ट्रेस फ़ाइल से एकत्रित जानकारी खोलें, और फिर कमांड का उपयोग करें प्रदर्शन डेटा आयात करेंमेनू से फ़ाइल.

आप इस लेख से क्या सीखेंगे?

  • SQL Profiler Trace Tool का उद्देश्य
  • क्वेरी के टेक्स्ट को DBMS में कैसे ट्रैक करें, जिसमें 1C क्वेरी का अनुवाद किया गया है
  • ट्रेस फ़िल्टर सेटिंग्स
  • SQL Profiler को निजीकृत कैसे करें

अक्सर काम में ऐसी स्थिति उत्पन्न हो जाती है जब 1C में किसी कारण से अनुरोध धीरे-धीरे काम करता है, लेकिन अनुरोध पाठ का विश्लेषण हमें किसी भी समस्या के बारे में नहीं बताता है।

ऐसे में आपको इस समस्या का निचले स्तर पर अध्ययन करना होगा। ऐसा करने के लिए, हमें SQL क्वेरी के टेक्स्ट और क्वेरी प्लान को देखना होगा। इसके लिए आप SQL Profiler का इस्तेमाल कर सकते हैं।

एसक्यूएल प्रोफाइलर - उद्देश्य

SQL Profiler MS SQL सर्वर में शामिल एक प्रोग्राम है जिसे SQL सर्वर में होने वाली सभी घटनाओं को देखने के लिए डिज़ाइन किया गया है। दूसरे शब्दों में, एक ट्रेस रिकॉर्ड करने की आवश्यकता है।

1सी प्रोग्रामर के लिए यह टूल किन मामलों में उपयोगी हो सकता है? सबसे पहले, आप SQL में किसी क्वेरी का टेक्स्ट प्राप्त कर सकते हैं और उसकी योजना देख सकते हैं। यह प्रौद्योगिकी पत्रिका (टीजे) में भी किया जा सकता है, लेकिन टीजे में अनुरोध करने की योजना इतनी सुविधाजनक नहीं है और इसके लिए कुछ कौशल और क्षमताओं की आवश्यकता होती है। इसके अलावा, प्रोफाइलर में, आप न केवल एक पाठ्य, बल्कि एक ग्राफिकल क्वेरी निष्पादन योजना भी देख सकते हैं, जो अधिक सुविधाजनक है।

प्रोफाइलर आपको यह पता लगाने की भी अनुमति देता है:

  • एक निश्चित समय से अधिक समय के लिए अनुरोध
  • एक विशिष्ट तालिका के खिलाफ प्रश्न
  • ताले का इंतज़ार
  • समय समाप्ति
  • गतिरोध, आदि

एसक्यूएल प्रोफाइलर के साथ प्रश्नों का विश्लेषण

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

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

ट्रेस में अनुरोध को ट्रैक करने के लिए, निम्न चरणों का पालन करें:

1. SQL प्रोफाइलर लॉन्च करें: प्रारंभ - सभी प्रोग्राम - Microsoft SQL Server 2008 R2 - उत्पादकता उपकरण - SQLProfiler.

2. एक नया ट्रेस बनाएं: फ़ाइल - ट्रेस बनाएँ(Ctrl + N)।

3. उस DBMS सर्वर को निर्दिष्ट करें जिस पर हमारा डेटाबेस स्थित है और क्लिक करें जुडिये:

हमें किसी अन्य कंप्यूटर पर स्थित DBMS सर्वर को ट्रेस करने से कोई नहीं रोकता है।

4. दिखाई देने वाली विंडो में ट्रेस गुणबुकमार्क पर स्विच करें घटनाओं का चयन:

चूंकि हमें प्रश्नों और क्वेरी योजनाओं की आवश्यकता है, इसलिए हमें संबंधित घटनाओं को सक्षम करने की आवश्यकता है। संपत्तियों और घटनाओं की पूरी सूची प्रदर्शित करने के लिए, झंडे चालू करें सभी इवेंट दिखाएंतथा सभी कॉलम दिखाएं... अब आपको केवल नीचे दिए गए चित्र में दिखाई गई घटनाओं का चयन करने की आवश्यकता है, बाकी को अक्षम किया जाना चाहिए:

इन घटनाओं का विवरण:

  • ShowplanStatisticsProfile - क्वेरी निष्पादन की पाठ योजना
  • ShowplanXMLStatisticsProfile - ग्राफिकल क्वेरी निष्पादन योजना
  • RPC: पूर्ण- अनुरोध का पाठ, यदि इसे एक प्रक्रिया के रूप में निष्पादित किया जाता है (यदि मापदंडों के साथ 1C अनुरोध निष्पादित किया जाता है)
  • SQL: बैच पूर्ण - अनुरोध का पाठ, यदि इसे सामान्य अनुरोध के रूप में निष्पादित किया जाता है (यदि पैरामीटर के बिना 1C अनुरोध निष्पादित किया गया था)

6. इस स्तर पर, आपको चयनित घटनाओं के लिए फ़िल्टर को कॉन्फ़िगर करने की आवश्यकता है। यदि फ़िल्टर स्थापित नहीं है, तो हम इस DBMS सर्वर पर स्थित सभी डेटाबेस के लिए अनुरोध देखेंगे। डेटाबेस नाम से फ़िल्टर सेट करने के लिए कॉलम फ़िल्टर बटन पर क्लिक करें:

अब हम "TestBase_8_2" डेटाबेस के लिए केवल ट्रेस क्वेरीज़ में देखते हैं।

आप अन्य क्षेत्रों पर भी फ़िल्टर लगा सकते हैं, उनमें से सबसे दिलचस्प हैं:

  • अवधि
  • टेक्स्टडेटा (आमतौर पर अनुरोध टेक्स्ट)
  • RowCounts (क्वेरी द्वारा लौटाई गई पंक्तियों की संख्या)

मान लें कि हमें "TestBase_8_2" डेटाबेस में 3 सेकंड से अधिक समय तक चलने वाली "_InfoRg4312" तालिका के सभी अनुरोधों को "पकड़ने" की आवश्यकता है। ये आवश्यक:

ए) डेटाबेस द्वारा फ़िल्टर सेट करें (ऊपर देखें)
बी) अवधि के अनुसार फ़िल्टर सेट करें (मिलीसेकंड में सेट करें):

सी) अनुरोध टेक्स्ट द्वारा फ़िल्टर सेट करें:

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

7. अब बटन का उपयोग करके ट्रेस करना शुरू करें दौड़नाखिड़की में ट्रेस गुणऔर उन घटनाओं का निरीक्षण करें जो स्थापित फ़िल्टर के अंतर्गत आती हैं, जिनका प्रदर्शन कॉन्फ़िगर किया गया है।

रूटिंग को नियंत्रित करने के लिए कमांड पैनल बटन का उपयोग किया जाता है:

बटन का उद्देश्य:

  • रबड़- ट्रेस विंडो को साफ करता है
  • शुरू- ट्रेसिंग शुरू करता है
  • ठहराव- ट्रेसिंग को रोक देता है, जब आप स्टार्ट पर क्लिक करते हैं, तो ट्रेसिंग रिज्यूमे
  • विराम- ट्रेस करना बंद कर देता है

8. ट्रेस विंडो में दो भाग होते हैं। ऊपरी भाग में घटनाएँ और उनके गुण हैं, निचले भाग में - घटनाओं के प्रकार के आधार पर जानकारी। हमारे उदाहरण के लिए, या तो अनुरोध टेक्स्ट या इसकी योजना यहां प्रदर्शित की जाएगी।

9. आइए 1C क्वेरी कंसोल में अनुरोध चलाएं और देखें कि यह प्रोफाइलर में कैसे दिखाई देगा:

आप ट्रेस व्यवहार से देख सकते हैं कि अंत में कई अनुरोध थे, और उनमें से केवल एक ही हमारे लिए रुचिकर है। शेष अनुरोध सेवा अनुरोध हैं।

10. घटनाओं के गुण मूल्यांकन करना संभव बनाते हैं:

  • अनुरोध में कितने सेकंड लगे (अवधि)
  • कितने लॉजिकल रीड थे
  • परिणाम के रूप में क्वेरी कितनी पंक्तियाँ लौटी (RowCounts), आदि।

हमारे मामले में, अनुरोध में 2 मिलीसेकंड लगे, 4 तार्किक रीड किए और 1 पंक्ति लौटा दी।

11. यदि आप उपरोक्त एक घटना को देखते हैं, तो आप चित्र योजना को चित्रमय रूप में देख सकते हैं:

योजना से यह देखा जा सकता है कि मूल्य के आधार पर सूचकांक पर खोज की जाती है, इस योजना को आदर्श नहीं कहा जा सकता है, क्योंकि सूचकांक कवर नहीं कर रहा है, कोड और नाम फ़ील्ड KeyLookup का उपयोग करके प्राप्त किए जाते हैं, जिसमें 50% समय लगता है। .

संदर्भ मेनू का उपयोग करके, परिणामी ग्राफिकल क्वेरी योजना को * .SQLPlan एक्सटेंशन के साथ एक अलग फ़ाइल में सहेजा जा सकता है और किसी अन्य कंप्यूटर पर या SQL संतरी प्लान एक्सप्लोरर प्रोग्राम का उपयोग करके प्रोफाइलर में खोला जा सकता है, जो अधिक उन्नत है।

12. अगर हम और भी ऊपर जाते हैं, तो हम वही क्वेरी प्लान देखेंगे, लेकिन टेक्स्ट फॉर्म में। यह वह योजना है जो TZ, MCC और अन्य 1C प्रदर्शन निगरानी उपकरणों में प्रदर्शित होती है।

  • प्रोफाइलर के प्रारूप में, यानी * .trc एक्सटेंशन के साथ
  • एक्सएमएल प्रारूप के लिए
  • ट्रेस से एक टेम्प्लेट बनाएं (अगला आइटम देखें)
  • परिणामी ट्रेस को डेटाबेस तालिका के रूप में सहेजें। यह एक बहुत ही सुविधाजनक तरीका है, उदाहरण के लिए, आपको ट्रेस में सबसे धीमी क्वेरी खोजने की आवश्यकता होती है या कुछ पैरामीटर द्वारा क्वेरी को फ़िल्टर करने की आवश्यकता होती है।

फिर हम निर्दिष्ट सर्वर पर डेटाबेस का चयन करते हैं, उस तालिका का नाम निर्दिष्ट करें जहां ट्रेस सहेजा जाएगा। आप किसी मौजूदा तालिका का उपयोग कर सकते हैं, या इसे एक नया नाम दे सकते हैं, और फिर यह तालिका स्वचालित रूप से बनाई जाएगी।

अब हमारी तालिका में किसी भी जटिलता के प्रश्नों को बनाना संभव है: उदाहरण के लिए, सबसे लंबे समय तक चलने वाले प्रश्नों की खोज करना।

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

14. प्रश्नों का विश्लेषण करने के लिए प्रोफाइलर के लगातार उपयोग के साथ, वांछित घटनाओं और फिल्टर को लगातार समायोजित करने से आपका बहुत समय लगेगा।

इस मामले में, ट्रेस टेम्प्लेट हमारी मदद करेंगे, जहां हम अपनी ज़रूरत के फ़िल्टर और कॉलम ऑर्डर को कॉन्फ़िगर करते हैं, और फिर एक नया ट्रेस बनाते समय मौजूदा टेम्प्लेट का उपयोग करते हैं।

टेम्प्लेट बनाने के लिए, मेनू का उपयोग करें फ़ाइल - टेम्प्लेट - नया टेम्प्लेट:

पहले टैब पर, सर्वर प्रकार, टेम्पलेट नाम निर्दिष्ट करें और यदि आवश्यक हो, तो डिफ़ॉल्ट रूप से इस टेम्पलेट का उपयोग करने के लिए ध्वज सेट करें।

दूसरे टैब पर, हम आवश्यक ईवेंट का चयन करते हैं और फ़िल्टर सेट करते हैं (जैसा कि ऊपर दिखाया गया है)।

एक नया ट्रेस बनाते समय, हम आवश्यक टेम्पलेट निर्दिष्ट कर सकते हैं, और फिर दूसरे टैब पर, सभी फ़िल्टर और ईवेंट बनाए गए टेम्पलेट के अनुसार स्वचालित रूप से भर जाएंगे।

बर्मिस्ट्रोव एंड्री

SQL सर्वर 2005 प्रोफाइलर, एप्लिकेशन क्वेरी ट्रैकिंग, ट्रेस पैटर्न, क्वेरी सूचना ग्रुपिंग

उपयोगकर्ता गतिविधि की निगरानी के लिए सबसे उपयोगी उपकरणों में से एक है प्रोफाइलर (प्रोफाइलर) इस टूल का उपयोग करके, आप यह पता लगा सकते हैं कि SQL सर्वर वर्तमान में कौन से कमांड निष्पादित कर रहा है। एक प्रोफाइलर का उपयोग करने की आवश्यकता बहुत बार उत्पन्न होती है। यहां कुछ मानक स्थितियां हैं जहां इसके बिना करना बहुत मुश्किल हो सकता है:

q आप एप्लिकेशन के संचालन का विश्लेषण करना चाहते हैं और देखना चाहते हैं कि यह सर्वर पर कौन से आदेश निष्पादित करता है। यह जानकारी काम आ सकती है:

· यह समझने के लिए कि कुछ ऑपरेशन करते समय यह एप्लिकेशन डेटाबेस में किन तालिकाओं के साथ काम करता है। बहुत बार एक उद्यम में एक ऐसे रूप में रिपोर्ट बनाने की आवश्यकता होती है जो एप्लिकेशन द्वारा प्रदान नहीं की जाती है, और डेवलपर्स शायद ही कभी डेटाबेस की संरचना के बारे में विस्तृत जानकारी प्रदान करते हैं;

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

यह समझने के लिए कि सर्वर पर एप्लिकेशन से कौन सा Transact -SQL कमांड निष्पादित करते समय त्रुटि होती है;

q लंबी अवधि में उपयोगकर्ता गतिविधि के बारे में जानकारी एकत्र करने के लिए (उदाहरण के लिए, आप कार्य दिवस के दौरान एक निश्चित एप्लिकेशन द्वारा सर्वर को भेजे गए सभी अनुरोध एकत्र कर सकते हैं)। एकत्रित जानकारी को तब मैन्युअल रूप से विश्लेषण किया जा सकता है या स्वचालित विश्लेषण के लिए डेटाबेस ट्यूनिंग सलाहकार को पास किया जा सकता है;

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

SQL सर्वर 2005 प्रोफाइलर के लिए बहुत सी नई चीजें पेश करता है:

क्ष एकीकरण सेवा इवेंट प्रोफाइलिंग पेश की गई थी। अब आप नए डीटीएस पैकेज की प्रगति को ट्रैक करने के लिए प्रोफाइलर का उपयोग कर सकते हैं;

q अब कमांड के निष्पादन के बारे में जानकारी लिखते समय सिस्टम मॉनिटर से काउंटरों की रीडिंग रिकॉर्ड करना संभव है;

q कई नए ईवेंट और सूचना स्रोत प्रोफाइलर में जोड़े गए हैं जिन्हें ट्रेस फ़ाइल में लिखे जाने के लिए चुना जा सकता है। ट्रेस फ़ाइल में क्या लिखना है इसकी परिभाषा अब XML स्वरूप में सहेजी जा सकती है;

q अब आप XML स्वरूप में ट्रेस परिणामों को सहेज सकते हैं (ANSI, OEM, UNICODE स्वरूपों में लिखने की क्षमता भी सहेजी जाती है);

क्ष यहां तक ​​कि प्रोफाइलर द्वारा पकड़े गए ट्रांजैक्ट-एसक्यूएल कमांड की निष्पादन योजनाओं को एक्सएमएल प्रारूप में सहेजा जा सकता है। इन योजनाओं को आगे के विश्लेषण के लिए SQL सर्वर प्रबंधन स्टूडियो में खोला जा सकता है;

q अब सीधे प्रोफाइलर विंडो में ईवेंट को समूहीकृत करना संभव है। उदाहरण के लिए, ग्रुपिंग का उपयोग करके, आप बहुत आसानी से गणना कर सकते हैं कि दिन के दौरान सर्वर पर किसी विशेष Transact -SQL कमांड को कितनी बार निष्पादित किया गया है।

प्रोफाइलर के साथ काम करना बहुत आसान लगता है। इस एप्लिकेशन को मेनू से लॉन्च किया जा सकता है शुरू| कार्यक्रमों| माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005 | प्रदर्शन उपकरण | SQL सर्वर प्रोफाइलर ... आरंभ करने के लिए, मेनू में खुलने वाली प्रोफाइलर विंडो में फ़ाइल(फ़ाइल) आपको चयन करने की आवश्यकता है नयानिशान(नया ट्रेस) और SQL सर्वर 2005 सर्वर से कनेक्ट करें जिसकी आप निगरानी करेंगे। ट्रेसिंग एक सत्र को संदर्भित करता है जो SQL सर्वर 2005 के संचालन के बारे में जानकारी एकत्र करता है। हालाँकि, इससे पहले कि आप जानकारी एकत्र करना शुरू करें, आपको इस सत्र के मापदंडों को कॉन्फ़िगर करने की आवश्यकता है। यह सेटिंग विंडो में की जाती है निशानगुण(ट्रेस गुण), जो ट्रेसिंग सत्र शुरू करने से पहले स्वचालित रूप से खुलता है (चित्र 11.1)।

चावल। 11.1.ट्रेस सत्र पैरामीटर सेट करना

टैब में आम(सामान्य) सूचीबद्ध उपयोगटेम्पलेट(टेम्पलेट का प्रयोग करें) आप अपने सत्र में जानकारी एकत्र करने के लिए सबसे उपयुक्त टेम्पलेट चुन सकते हैं। सिद्धांत रूप में, आप टेम्प्लेट सेटिंग्स को अनदेखा कर सकते हैं, लेकिन जानकारी एकत्र करने के लिए मापदंडों को मैन्युअल रूप से परिभाषित कर सकते हैं (आसन्न टैब का उपयोग करके आयोजनचयन(घटना चयन))। हालांकि, सही टेम्प्लेट निर्दिष्ट करने से समय की बचत हो सकती है और गलतियों से बचा जा सकता है। इसलिए, हम टेम्प्लेट पर अधिक विस्तार से ध्यान देंगे।

टेम्प्लेट एक्सटेंशन के साथ एक विशेष फ़ाइल में सहेजा जाता है टीडीएफट्रेस सत्र सेटिंग्स। टेम्प्लेट के साथ काम करना (नए जोड़ना, मौजूदा को बदलना, रिपोर्ट को अन्य निर्देशिकाओं में आयात और निर्यात करना) मेनू का उपयोग करके किया जाता है फ़ाइल| टेम्पलेट्स(फाइल | टेम्प्लेट) SQL सर्वर प्रोफाइलर में। प्रारंभ में, आपके पास अपने निपटान में आठ टेम्पलेट हैं:

क्यू मानक (चूक)- जैसा कि नाम से ही स्पष्ट है, यह टेम्प्लेट अधिकांश स्थितियों के लिए उपयुक्त है और इसलिए इसे डिफ़ॉल्ट रूप से चुना जाता है। यह आपको सभी संग्रहीत कार्यविधियों और Transact -SQL कमांड को ट्रैक करने की अनुमति देता है जो निष्पादन के लिए चलाए जाते हैं;

क्यू सपा_गिनता- निष्पादन के लिए शुरू की गई संग्रहीत प्रक्रियाओं और कार्यों के बारे में जानकारी एकत्र की जाती है। इस मामले में, प्रोफाइलर विंडो में जानकारी संग्रहीत प्रक्रियाओं के नाम से (प्रोफाइलर की शब्दावली में - समूहीकृत) सॉर्ट की जाती है;

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

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

क्यू टीएसक्यूएल _समूहीकृत- Transact -SQL कमांड कोड और इसके लॉन्च के समय के बारे में जानकारी के अलावा, एप्लिकेशन नाम, ऑपरेटिंग सिस्टम में उपयोगकर्ता खाता और कनेक्ट करने के लिए उपयोग किए जाने वाले उपयोगकर्ता नाम के बारे में जानकारी दर्ज की जाती है। इस मामले में, रिकॉर्ड्स को लॉगिन द्वारा समूहीकृत किया जाता है। आमतौर पर इस पैटर्न का उपयोग उन स्थितियों में किया जाता है जहां आप किसी विशिष्ट एप्लिकेशन की गतिविधि को ट्रैक करना चाहते हैं;

क्यू टीएसक्यूएल _फिर से खेलना- निष्पादित Transact -SQL कमांड के बारे में सबसे विस्तृत जानकारी दर्ज की जाएगी। फिर इस जानकारी का उपयोग सर्वर पर लोड को अधिकतम सटीकता के साथ पुन: उत्पन्न करने के लिए किया जा सकता है। आमतौर पर, इस टेम्पलेट का उपयोग कमांड के एक सेट को लिखने के लिए किया जाता है जिसका उपयोग प्रदर्शन के दृष्टिकोण से विभिन्न सर्वर सेटिंग्स का परीक्षण करने के लिए किया जाएगा;

क्यू टीएसक्यूएल _एस.पी.- संपूर्ण संग्रहीत प्रक्रिया (घटना) की शुरुआत के बारे में जानकारी दर्ज करने के अलावा एसपी: शुरू), यह ट्रेस विकल्प इस संग्रहीत कार्यविधि में प्रत्येक कमांड के निष्पादन के बारे में जानकारी भी रिकॉर्ड करता है (ईवेंट एसपी: StmtStarting) यह पैटर्न आमतौर पर जटिल संग्रहीत कार्यविधियों के संचालन की निगरानी के लिए उपयोग किया जाता है;

क्यू ट्यूनिंग- यह टेम्प्लेट डेटाबेस ट्यूनिंग सलाहकार के हस्तांतरण के लिए सबसे उपयुक्त जानकारी रिकॉर्ड करने के लिए डिज़ाइन किया गया है। इस स्वचालित विश्लेषण और प्रदर्शन अनुकूलन उपकरण के साथ कैसे काम करें, इस पर चर्चा की जाएगी संप्रदाय 11.5.5.

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

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

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

आपके द्वारा वांछित टेम्पलेट का चयन करने या लॉगिंग के लिए ईवेंट के अपने स्वयं के सेट को कॉन्फ़िगर करने के बाद, आपको बस टैब पर वापस जाने की आवश्यकता है आमऔर ट्रेस सत्र के लिए कुछ अतिरिक्त पैरामीटर कॉन्फ़िगर करें।

ट्रेस जानकारी को किसी फ़ाइल में लॉग किया जा सकता है। इस फ़ाइल का उपयोग विभिन्न स्थितियों में किया जा सकता है:

q डेटाबेस ट्यूनिंग सलाहकार को सूचना के स्रोत के रूप में पारित किया जा सकता है;

q को सभी रिकॉर्ड किए गए आदेशों को दोहराकर प्रोफाइलर में बार-बार "खेला" जा सकता है, उदाहरण के लिए, विभिन्न सर्वर सेटिंग्स के तहत प्रदर्शन का मूल्यांकन करने के लिए;

क्यू डेवलपर्स को आवेदन के लिए उनके दावों के समर्थन में प्रस्तुत किया जा सकता है।

आइए कुछ बिंदुओं पर ध्यान दें जो किसी फ़ाइल में ट्रेस सत्र को लॉग करने से संबंधित हैं:

q 5 एमबी का डिफ़ॉल्ट फ़ाइल आकार बहुत छोटा है। उत्पादन सर्वर की रूपरेखा तैयार करते समय, यह आकार मिनटों में टाइप किया जाता है। सच है, डिफ़ॉल्ट रूप से चेकबॉक्स चेक किया गया है सक्षमफ़ाइलरोल ओवर(फ़ाइलों को बदलने में सक्षम करें), यानी एक फ़ाइल भरने के बाद, दूसरी फ़ाइल स्वचालित रूप से बन जाएगी, जिसका नाम नंबर 1, फिर 2, आदि के साथ जोड़ा जाएगा, लेकिन इसके साथ काम करना हमेशा सुविधाजनक नहीं होता है बड़ी संख्या में फाइलें। यदि आप डेटाबेस ट्यूनिंग एडवाइज़र ट्रांसमिशन के लिए जानकारी एकत्र कर रहे हैं, तो फ़ाइल आकार सीमा को 1 जीबी पर सेट करना बेहतर है (पैरामीटर का उपयोग करके) सेटज्यादा से ज्यादाफ़ाइलआकार(अधिकतम फ़ाइल आकार अनुकूलित करें) टैब आम) किसी फ़ाइल की ट्रेस रिकॉर्डिंग अक्सर व्यवस्थापक के कार्य केंद्र से की जाती है, इसलिए डिस्क स्थान की आवश्यकता वर्कस्टेशन पर होगी न कि सर्वर पर;

क्यू पैरामीटर सर्वरप्रक्रियाओंनिशानआंकड़े(सर्वर प्रोसेस ट्रेस डेटा) का उपयोग ट्रेस जानकारी को रिकॉर्ड करने की विश्वसनीयता बढ़ाने के लिए किया जा सकता है। डिफ़ॉल्ट रूप से, SQL सर्वर प्रोफाइलर उस कंप्यूटर पर ट्रेस डेटा प्रोसेसिंग को संभालता है जिस पर वह चल रहा है (जरूरी नहीं कि सर्वर पर)। यदि आप इस चेक बॉक्स का चयन करते हैं, तो सर्वर ट्रेस जानकारी के संसाधन को हैंडल करेगा। यह सुनिश्चित करता है कि सभी ट्रेस जानकारी एकत्र की जाएगी (यदि पीक सर्वर लोड के समय चेकबॉक्स को अनचेक किया जाता है, तो कुछ जानकारी को छोड़ दिया जा सकता है), लेकिन सर्वर पर लोड को बढ़ा देगा।

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

टैब पर अंतिम पैरामीटर आम- सक्षमनिशानविरामसमय(ट्रेस स्टॉप टाइम शामिल करें)। आप उस समय को निर्दिष्ट कर सकते हैं जब ट्रेसिंग स्वचालित रूप से अक्षम हो जाएगी। यह आमतौर पर किसी भी सेवा संचालन को शुरू करने से पहले ट्रेसिंग को बंद करने के लिए समझ में आता है, जिसमें आप लॉगिंग बिंदु (बैकअप, बल्क डेटा लोडिंग, OLAP क्यूब्स को संसाधित करना, आदि) से रुचि नहीं रखते हैं।

सभी ट्रेसिंग मापदंडों को कॉन्फ़िगर करने के बाद, आप बटन पर क्लिक कर सकते हैं दौड़ना(भागो) टैब आमऔर अनुरेखण प्रारंभ करें (चित्र 11.2)।

चावल। 11.2.ट्रेस सत्र के दौरान जानकारी देखना

ट्रेस सूचना दर्शक में काम काफी स्पष्ट है: ऊपरी भाग सर्वर पर होने वाली घटनाओं को दिखाता है, और निचला भाग उनके लिए विस्तृत जानकारी प्रदान करता है (उदाहरण के लिए, SQL कमांड का कोड)। आइए इस विंडो में उपलब्ध कुछ संभावनाओं पर ध्यान दें:

क्यू अगर टैब व्यवस्थितकॉलमटेम्पलेट के गुणों में आपने समूहीकृत किए जाने वाले स्तंभों का चयन किया है, फिर आप इन स्तंभों के आधार पर व्यूअर में रिकॉर्ड को समूहीकृत कर सकते हैं. इस उद्देश्य के लिए मेनू में राय(देखें) आदेश प्रदान किया गया समूहीकृतराय(समूहीकृत दृश्य);

क्ष यदि सूची में टेम्पलेट के गुणों में एक ही टैब पर है समूहकेवल एक कॉलम रखा गया है, तो आप और भी सुविधाजनक प्रदर्शन मोड का उपयोग कर सकते हैं एकत्रित कियाराय(अंजीर.11.3)। यह मोड कमांड का उपयोग करके सक्षम किया गया है एकत्रित कियारायएक ही मेनू से रायऔर आपको अपनी पसंद के कॉलम से मानों को ट्री नोड्स में बदलने की अनुमति देता है जिसे आप संक्षिप्त और विस्तारित कर सकते हैं। इसके अलावा, इनमें से प्रत्येक नोड के लिए घटनाओं की संख्या की स्वचालित रूप से गणना की जाती है।

चावल। 11.3.प्रदर्शन प्रणाली एकत्रित कियाराय

q प्रोफाइलर में, आप न केवल उन घटनाओं को प्रदर्शित कर सकते हैं जो अभी पकड़ी गई हैं, बल्कि सहेजी गई फ़ाइलें और ट्रेस टेबल भी प्रदर्शित कर सकते हैं। वैकल्पिक रूप से, आप Transact -SQL कमांड के साथ नियमित SQL सर्वर स्क्रिप्ट खोल सकते हैं। इन फ़ाइलों या तालिकाओं की जानकारी का उपयोग लॉग किए गए कार्यों को दोहराने के लिए किया जा सकता है। मेनू आदेश इस उद्देश्य के लिए अभिप्रेत हैं। फिर से खेलना(दोहराना);

q SQL सर्वर 2005 Profiler प्रदर्शन मॉनिटर में प्रदर्शन काउंटर के साथ ट्रेस जानकारी को जोड़ने के लिए एक नई सुविधा का परिचय देता है। इस अवसर का लाभ उठाने के लिए, आपको चाहिए:

ट्रेस सत्र को परिभाषित करें जिसके दौरान कॉलम के लिए जानकारी दर्ज की जानी चाहिए समय शुरूतथा अंतिम समय;

किसी फ़ाइल या तालिका में सूचना रिकॉर्डिंग के साथ ट्रेस सत्र प्रारंभ करें। साथ ही प्रदर्शन मॉनिटर मीटर रीडिंग को एक फ़ाइल में एकत्रित करें;

प्रोफाइलर में ट्रेस फ़ाइल से एकत्रित जानकारी खोलें, और फिर कमांड का उपयोग करें आयातप्रदर्शनआंकड़े(आयात प्रदर्शन डेटा) मेनू से फ़ाइल.

SQL सर्वर 2005 प्रोफाइलर के लिए प्लेसहोल्डर प्रदान करता है। ये ट्रेस संग्रहीत कार्यविधियाँ हैं। उनकी कार्यक्षमता लगभग प्रोफाइलर के समान है। उदाहरण के लिए, आप ईवेंट को ट्रेस करने और उन्हें टेक्स्ट फ़ाइल में लिखने के लिए भी चुन सकते हैं। मुख्य अंतर यह है कि सभी सेटिंग्स ट्रांजैक्ट -एसक्यूएल कोड से करनी होंगी।

ट्रेस संग्रहीत कार्यविधियाँ एक प्रोफाइलर की तुलना में काम करने के लिए अधिक कठिन और कम सुविधाजनक होती हैं, और वे अतिरिक्त सुविधाएँ प्रदान नहीं करती हैं। इसलिए, हम उन पर विस्तार से विचार नहीं करेंगे। संक्षिप्त विवरण के साथ ऐसी संग्रहीत प्रक्रियाओं की एक सूची यहां दी गई है:

क्यू sp_trace_create- आपको ट्रेसिंग सत्र के मापदंडों को कॉन्फ़िगर करने की अनुमति देता है;

क्यू sp_trace_setevent- आपको बनाए गए ट्रेस सत्र के लिए आवश्यक घटनाओं का चयन करने की अनुमति देता है;

क्यू sp_trace_setfilter- आपको ट्रेस जानकारी एकत्र करने के लिए फ़िल्टर कॉन्फ़िगर करने की अनुमति देता है;

क्यू sp_trace_setstatus- आपको एक ट्रेस शुरू करने, इसे रोकने या संग्रहीत प्रक्रिया द्वारा बनाए गए ट्रेस को हटाने की अनुमति देता है sp_trace_createवर्तमान सत्र परिभाषा;

क्यू sp_trace_generateevent- आपको एक कस्टम ईवेंट उत्पन्न करने की अनुमति देता है जिसे ट्रेस के दौरान इंटरसेप्ट किया जाएगा।

पिछले संस्करणों में (कंप्यूटरप्रेस # 1, 3-5, 7, 9'2006 देखें), हमने माइग्रेशन या अपग्रेड द्वारा SQL सर्वर 2005 में संक्रमण से संबंधित मुद्दों के साथ-साथ SQL सर्वर 2005 का उपयोग करने के लिए मुख्य परिदृश्यों पर चर्चा की। यह लेख क्वेरी ऑप्टिमाइज़ेशन के विभिन्न तरीकों और प्रदर्शन समस्याओं को खोजने से जुड़ी समस्याओं को हल करने के संभावित तरीकों पर ध्यान केंद्रित करेगा।

SQL सर्वर ऐसी सेवाएँ प्रदान करता है जो एक गतिशील, हमेशा बदलते परिवेश में चलती हैं। इसलिए, सर्वर के संचालन की नियमित निगरानी आपको उनकी घटना के चरण में समस्याओं की पहचान करने और उन्हें खत्म करने के लिए तुरंत उपाय करने की अनुमति देती है। आंकड़ों के संचय के साथ, सर्वर संचालन में मुख्य प्रवृत्तियों की समझ प्रकट होती है। नियमित रूप से डेटा एकत्र करना - तब भी जब सर्वर सुचारू रूप से चल रहा हो - एक तथाकथित सर्वर प्रदर्शन आधार रेखा तैयार करेगा जो सर्वर प्रदर्शन के आगे माप के लिए एक बेंचमार्क के रूप में काम कर सकता है।

एक बार जब आपके पास आधारभूत प्रदर्शन बेंचमार्क हो जाता है, तो आप विभिन्न परिदृश्यों में क्वेरी प्रदर्शन का विश्लेषण करने की क्षमता हासिल कर लेते हैं। यह अनुशंसा की जाती है कि विभिन्न अनुकूलन प्रक्रियाओं को करने से पहले, दौरान और बाद में माप लिया जाए ताकि यह सुनिश्चित हो सके कि उठाए गए कदम सफल हैं। इसके अलावा, नियमित मानक प्रदर्शन माप (साप्ताहिक, मासिक, त्रैमासिक, आदि) सर्वर प्रदर्शन की एक स्पष्ट तस्वीर प्रदान करेगा।

बेसलाइन का उपयोग सर्वर के पीक और ऑफ-पीक घंटे, अनुरोधों का प्रतिक्रिया समय और कमांड पैकेट, बैकअप लेने और डेटा को पुनर्स्थापित करने में लगने वाले समय आदि को निर्धारित करने के लिए किया जा सकता है।

क्वेरी प्रदर्शन

अनुरोधों के प्रदर्शन को दो दृष्टिकोणों से माना जाना चाहिए - किसी विशेष अनुरोध को पूरा करने के लिए उपयोग किए जाने वाले संसाधन (संसाधनों में वे वस्तुएं शामिल हैं जिन्हें हम अनुरोध के निष्पादन के दौरान एक्सेस करते हैं, अवरुद्ध वस्तुएं, आदि), और अनुरोध को निष्पादित करने में लगने वाला समय , - अनुरोध को पूरा करने में जितना कम समय लगेगा, अनुरोध प्रक्रिया के दौरान हम अन्य अनुरोधों और लेनदेन को अवरुद्ध करने की संभावना उतनी ही कम होगी।

SQL सर्वर 2005 में क्वेरी प्रदर्शन को मापने के लिए दो मुख्य उपकरण शामिल हैं - प्रदर्शन मॉनिटर और SQL सर्वर प्रोफाइलर। इसके अलावा, सेट सांख्यिकी समूह से टी-एसक्यूएल निर्माण - सेट सांख्यिकी आईओ, सेट सांख्यिकी प्रोफाइल, और सेट सांख्यिकी समय - और गतिशील प्रबंधन दृश्यों का उपयोग प्रश्नों के निष्पादन के बारे में जानकारी प्राप्त करने के लिए किया जा सकता है। इसके बाद, हम प्रदर्शन मॉनिटर और SQL सर्वर प्रोफाइलर के उपयोग पर करीब से नज़र डालेंगे।

प्रदर्शन मॉनिटर का उपयोग करना

प्रदर्शन मॉनिटर उपयोगिता का उपयोग हार्डवेयर और सॉफ़्टवेयर संसाधनों के प्रदर्शन का विश्लेषण करने के लिए किया जाता है, जिसमें मेमोरी, नेटवर्क उपयोग, प्रोसेसर समय और SQL सर्वर और अन्य सॉफ़्टवेयर उत्पादों के संचालन से संबंधित जानकारी शामिल है - Microsoft संदेश कतारबद्ध (MSMQ), Microsoft .NET Framework और माइक्रोसॉफ्ट एक्सचेंज सर्वर। विशेष रूप से, आप SQL सर्वर संसाधनों जैसे ताले और लेनदेन की निगरानी के लिए प्रदर्शन मॉनिटर का उपयोग कर सकते हैं।

हमारे लिए रुचि के काउंटर जोड़ने के लिए, आपको निम्नलिखित चरणों का पालन करना होगा:

  1. व्यंजक सूची में शुरूटीम का चयन दौड़नाऔर डायलॉग बॉक्स में दौड़नापरिचय देना परफ़ॉर्मेंस... यह Microsoft प्रदर्शन प्रबंधन कंसोल (MMC) को लॉन्च करता है, जो कई प्रदर्शन काउंटरों का ग्राफिकल दृश्य प्रदर्शित करता है।
  2. खिड़की में सिस्टम मॉनिटरचार्ट पर राइट-क्लिक करें और कमांड चुनें काउंटर जोड़ें.
  3. डायलॉग बॉक्स में काउंटर जोड़ेंनिगरानी के लिए हमारे लिए कंप्यूटर और रुचि की वस्तु चुनें। SQL सर्वर के लिए विशिष्ट ऑब्जेक्ट तदनुसार उपसर्ग किए जाते हैं।
  4. काउंटरों का चयन करने के लिए, आपको या तो विकल्प का चयन करना होगा सभी काउंटर, या ड्रॉप-डाउन सूची से एक या अधिक काउंटर (चित्र 1)।
  1. उसके बाद, आपको डेटाबेस इंस्टेंस का चयन करना चाहिए या विकल्प को सक्षम करना चाहिए सभी उदाहरण.
  2. जोड़ें और बंद करें बटन पर क्लिक करने से काउंटर जोड़ना पूरा हो जाता है।

हमारे लिए रुचि के काउंटर जोड़े जाने के बाद, हम या तो उनके मूल्यों को ग्राफ़ के रूप में देख सकते हैं, या उन्हें ट्रेस फ़ाइल (चित्र 2) में सहेज सकते हैं।

बाद के मामले में, तत्व का विस्तार करना आवश्यक है प्रदर्शन लॉग और अलर्टऔर कमांड पर क्लिक करें नई लॉग सेटिंग्स... डायलॉग बॉक्स में नई लॉग सेटिंग्सआपको प्रोटोकॉल का नाम निर्दिष्ट करना होगा और ओके बटन पर क्लिक करना होगा। आगे डायलॉग बॉक्स में काउंटरलॉगनामहम टीम चुनते हैं काउंटर जोड़ें... हमारे लिए रुचि के काउंटर जोड़ना ऊपर वर्णित के समान है। कृपया ध्यान दें कि बड़ी संख्या में काउंटर सिस्टम के प्रदर्शन को प्रभावित कर सकते हैं। काउंटर जोड़ना समाप्त करने के बाद, क्लिक करें बंद करे.

टैब में आमअध्याय में नमूना डेटा हरआप नमूना आवृत्ति (डेटा कैप्चर) सेट कर सकते हैं। औसत आवृत्ति के साथ शुरू करने की सिफारिश की जाती है, उदाहरण के लिए हर 5 मिनट में, और फिर, यदि आवश्यक हो, तो इसे घटाएं या बढ़ाएं। ध्यान दें कि नमूना अंतराल जितना छोटा होगा, उतने ही अधिक सिस्टम और डिस्क संसाधनों की आवश्यकता होगी। याद रखें कि काउंटर की परिमाणीकरण अवधि से कम अंतराल के परिणामस्वरूप गलत डेटा प्रदर्शन भी हो सकता है। टैब में फाइल्स लॉग करें # लॉग फाइलेंआप लॉग फ़ाइल के गुणों को कॉन्फ़िगर कर सकते हैं, और आगे अनुसूचीनिगरानी कार्यक्रम निर्धारित है। ओके बटन दबाने से डेटा संग्रह की शुरुआत में एक प्रोटोकॉल का निर्माण होता है (चित्र 3)।

लॉगिंग को मैन्युअल रूप से समाप्त करने के लिए, आपको तत्व पर राइट-क्लिक करना होगा काउंटर लॉगऔर एक टीम चुनें विराम।

प्रदर्शन मॉनिटर में लॉग फ़ाइल में एकत्रित डेटा देखने के लिए, आइटम का चयन करें सिस्टम मॉनिटर, टास्कबार में - कमांड लॉग डेटा देखें, और संवाद बॉक्स में सिस्टम मॉनिटर गुणटैब में स्रोतलॉग फ़ाइल का नाम निर्दिष्ट करें।

सबसे अधिक उपयोग किए जाने वाले प्रदर्शन मॉनिटर काउंटर, जिनसे आप प्रदर्शन समस्याओं की पहचान करने के लिए जानकारी का उपयोग कर सकते हैं, को निम्नलिखित श्रेणियों में विभाजित किया गया है:

  • डेटा एक्सेस - एक ऑब्जेक्ट का उपयोग SQL सर्वर द्वारा उपयोग की जाने वाली डेटा एक्सेस विधियों का ऑडिट करने के लिए किया जाता है SQL सर्वर: एक्सेस के तरीके;
  • सांख्यिकी - एक वस्तु का उपयोग प्रश्नों के संकलन और पुनर्संकलन की निगरानी के लिए किया जाता है SQL सर्वर: SQL सांख्यिकी... यह जानकारी प्रदान करता है कि SQL सर्वर कितनी जल्दी और कुशलता से प्रश्नों को संसाधित करता है;
  • लेन-देन - प्रति सेकंड लेनदेन की संख्या निर्धारित करने के लिए वस्तुओं से संबंधित काउंटरों का उपयोग किया जाता है SQL सर्वर: डेटाबेसतथा SQL सर्वर: लेनदेन;
  • ताले - ऑब्जेक्ट का उपयोग विशिष्ट संसाधन प्रकारों पर रखे गए SQL सर्वर लॉक का ऑडिट करने के लिए किया जाता है SQL सर्वर: ताले(तालिका नंबर एक)।

तालिका 1. SQL सर्वर प्रोफाइलर काउंटर

काउंटर का नाम

विवरण

प्रति सेकंड इंडेक्स के लिए रेंज स्कैन की गणना करता है

अंतिम सेकंड में पूर्ण किए गए पूर्ण स्कैन की संख्या की गणना करता है

अनुक्रमणिका खोजें / सेकंड

अंतिम सेकंड में इंडेक्स लुकअप की संख्या की गणना करता है

टेबल लॉक एस्केलेशन / सेकंड

तालिका के लिए ताले की संख्या की गणना करता है

वर्कटेबल्स बनाया / सेकंड

अंतिम सेकंड में बनाई गई कार्यपत्रकों की संख्या की गणना करता है

बैच अनुरोध / सेकंड

प्रति सेकंड ट्रांजैक्ट-एसक्यूएल कमांड पैकेट की संख्या की गणना करता है। बड़ी संख्या में पैकेट का अर्थ है अच्छा थ्रूपुट

एसक्यूएल संकलन / सेकंड

प्रति सेकंड क्वेरी संकलन की संख्या की गणना करता है। उपयोगकर्ता द्वारा बुनियादी क्रियाएं करने के बाद इस काउंटर का मूल्य लगभग स्थिर हो जाना चाहिए।

SQL पुन: संकलन / सेकंड

प्रति सेकंड पुन: संकलित अनुरोधों की संख्या की गणना करता है

SQLServer ऑब्जेक्ट: डेटाबेस। लेनदेन / सेकंड काउंटर

अंतिम सेकंड में डेटाबेस में शुरू किए गए लेनदेन की संख्या की गणना करता है

SQLServer ऑब्जेक्ट: लेनदेन। काउंटर सबसे लंबा लेनदेन चलने का समय

लेन-देन की शुरुआत के बाद से सेकंड की संख्या की गणना करता है जो किसी भी अन्य मौजूदा लेनदेन की तुलना में अधिक समय तक सक्रिय रहा है। यदि यह काउंटर बहुत लंबा लेन-देन दिखाता है, तो इस लेनदेन के बारे में जानकारी प्राप्त करने के लिए sys.dm_tran_active_transactions () सिस्टम संग्रहीत कार्यविधि का उपयोग करें।

SQLServer ऑब्जेक्ट: लेनदेन। विरोध अनुपात काउंटर अपडेट करें

अंतिम सेकंड में डेटा अपडेट करते समय होने वाले विरोधों को हल करने के लिए स्नैपशॉट आइसोलेशन का उपयोग करने वाले लेन-देन के प्रतिशत की गणना करता है

औसत प्रतीक्षा समय (एमएस)

प्रतीक्षा का कारण बनने वाले प्रत्येक लॉक अनुरोध के लिए औसत प्रतीक्षा समय की गणना करता है

लॉक अनुरोध / सेकंड

प्रति सेकंड लॉक और लॉक रूपांतरणों की संख्या की गणना करता है

लॉक प्रतीक्षा समय (एमएस)

अंतिम सेकंड में ताले के लिए संचयी प्रतीक्षा की गणना करता है

प्रति सेकंड लॉक अनुरोधों की संख्या की गणना करता है जिसके परिणामस्वरूप प्रतीक्षा होती है

दूसरी उपयोगिता जिसे आप क्वेरी प्रदर्शन को मापने के लिए उपयोग कर सकते हैं वह है SQL सर्वर प्रोफाइलर। इसके बाद, हम इसका उपयोग करने के मुख्य तरीकों को देखेंगे।

SQL सर्वर प्रोफाइलर का उपयोग करना

SQL सर्वर प्रोफाइलर व्यक्तिगत प्रश्नों और प्रश्नों के प्रदर्शन को मापता है जो संग्रहीत कार्यविधियों और Transact-SQL कमांड पैकेज का हिस्सा हैं। इसका उपयोग प्रदर्शन की जानकारी एकत्र करने के लिए किया जा सकता है, जिसमें एक व्यक्तिगत कमांड को निष्पादित करने में लगने वाला समय, कमांड के लिए अवरुद्ध समय और निष्पादन योजना शामिल है।

एक नया प्रोफ़ाइल बनाने के लिए, आपको निम्नलिखित चरणों की एक श्रृंखला का पालन करना होगा:

  1. SQL सर्वर प्रोफाइलर चलाएँ ( माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005 => प्रदर्शन उपकरण => एसक्यूएल सर्वर प्रोफाइलर).
  2. व्यंजक सूची में फ़ाइलटीम का चयन नया निशान.
  3. डायलॉग बॉक्स में सर्वर से कनेक्ट करेंआवश्यक सर्वर का चयन करें और बटन पर क्लिक करें जुडिये.
  4. डायलॉग बॉक्स में ट्रेस गुणआपको प्रोफ़ाइल का नाम सेट करने की आवश्यकता है (ट्रेस नाम), और सूची में टेम्पलेट का प्रयोग करेंउपलब्ध टेम्पलेट्स में से एक चुनें या रिक्तयदि कोई टेम्पलेट उपयोग नहीं किया जाता है।
  5. प्रोफाइलिंग परिणामों को सहेजने के लिए, आपको विकल्प का चयन करना होगा फाइल में बचाएंफ़ाइल में डेटा लिखने और अधिकतम फ़ाइल आकार निर्दिष्ट करने के लिए (डिफ़ॉल्ट मान 5 एमबी है), वैकल्पिक रूप से आप विकल्प को सक्षम कर सकते हैं फ़ाइल रोलओवर सक्षम करेंनिर्दिष्ट प्रोफ़ाइल आकार तक पहुँचने पर स्वचालित रूप से एक नई फ़ाइल बनाने के लिए। दूसरी संभावना डेटाबेस तालिका में डेटा संग्रहीत कर रही है (तालिका में सहेजें)- विकल्प अधिकतम पंक्तियाँ सेट करेंआपको रिकॉर्ड की अधिकतम संख्या निर्धारित करने की अनुमति देता है।
  6. ट्रेस का अंत समय निर्धारित करने के लिए, आप विकल्प का उपयोग कर सकते हैं ट्रेस स्टॉप टाइम सक्षम करें(अंजीर। 4)।

किसी प्रोफ़ाइल के लिए ईवेंट और डेटा कॉलम परिभाषित करने के लिए, आपको निम्न चरणों का पालन करना होगा:

  1. डायलॉग बॉक्स में ट्रेस गुणटैब पर जाएं घटना चयन.
  2. ईवेंट क्लास टेबल का उपयोग करके प्रोफ़ाइल से ईवेंट जोड़ें या निकालें।
  3. सभी उपलब्ध घटनाओं की सूची प्राप्त करने के लिए, विकल्प को सक्षम करें सभी इवेंट दिखाएं(अंजीर। 5)।

टेबल तालिका 2 सबसे अधिक उपयोग की जाने वाली SQL सर्वर प्रोफाइलर घटनाओं को सूचीबद्ध करती है। प्रदर्शन काउंटरों की तरह, SQL सर्वर प्रोफाइलर घटनाएँ कई श्रेणियों में आती हैं, जिनमें से कुछ हमारे उद्देश्यों के लिए रुचिकर हैं।

तालिका 2. SQL सर्वर प्रोफाइलर घटनाएँ

घटना नाम

विवरण

यह घटना तब होती है जब कोई दूरस्थ प्रक्रिया कॉल पूर्ण होती है।

यह घटना तब शुरू होती है जब संग्रहीत कार्यविधि का निष्पादन समाप्त हो जाता है।

एसपी: एसटीएमटी पूर्ण

यह घटना तब होती है जब किसी संग्रहीत कार्यविधि के भीतर Transact-SQL कमांड का निष्पादन समाप्त हो जाता है।

SQL: StmtCompleted

जब ट्रांजैक्ट-एसक्यूएल कमांड पूरा हो जाता है तो यह घटना शुरू हो जाती है।

एसक्यूएल: बैच पूर्ण

यह घटना तब होती है जब ट्रांजैक्ट-एसक्यूएल कमांड के बैच ने निष्पादन समाप्त कर दिया है।

जब कोई लेन-देन किसी संसाधन पर लॉक प्राप्त करता है तो यह घटना सक्रिय हो जाती है

यह घटना तब होती है जब कोई लेन-देन पहले से लॉक किए गए संसाधन को रिलीज़ करता है

यह घटना तब शुरू होती है जब लॉक प्राप्त करने का समय समाप्त हो जाता है, क्योंकि आवश्यक संसाधन पहले से ही किसी अन्य लेनदेन द्वारा बंद कर दिया जाता है

कैसे निर्धारित करें कि क्या रुकावटें हैं

हर बार जब कोई लेन-देन किसी संसाधन (तालिका, पृष्ठ, अनुक्रमणिका, आदि) का उपयोग करता है, तो उस पर एक ताला लगा दिया जाता है। यदि कोई अन्य लेन-देन इस संसाधन तक पहुँचने का प्रयास करता है और लॉक प्रकार पहले से रखे गए लॉक के साथ असंगत है, तो एक नया लॉक बनाया जाता है।

ताले की उपस्थिति निर्धारित करने के लिए निम्नलिखित विधियों का उपयोग किया जा सकता है:

  • उपयोगिता SQL सर्वर प्रबंधन स्टूडियो गतिविधि मॉनिटर का उपयोग करें, जो प्रक्रियाओं के बारे में जानकारी दिखाता है, प्रक्रिया स्तर पर और ऑब्जेक्ट स्तर पर लॉक करता है। SQL सर्वर प्रबंधन स्टूडियो में गतिविधि मॉनिटर तक पहुँचने के लिए, आइटम का चयन करें प्रबंध, और उसमें - गतिविधि मॉनिटरऔर उस आइटम पर डबल क्लिक करें। गतिविधि मॉनिटर आपको देखने की अनुमति देता है:

प्रति प्रक्रिया लॉक की गई वस्तुएं - लॉक का कारण बनने वाले अनुरोध की पहचान करने के लिए प्रक्रिया आईडी का उपयोग करें सर्वर प्रक्रिया आईडी (SPID)पेज पर प्रक्रिया की जानकारी,

अन्य प्रक्रियाओं को प्रतीक्षा करने वाली प्रक्रियाएं - ऐसी प्रक्रियाओं की पहचान करने के लिए कॉलम का उपयोग करें। द्वारा अवरुद्धपेज पर प्रक्रिया की जानकारी(अंजीर। 6);

  • अवरुद्ध प्रक्रियाओं की रिपोर्ट प्राप्त करने के लिए SQL सर्वर प्रोफाइलर का उपयोग करें - यह सूची उन प्रक्रियाओं के बारे में जानकारी प्रदर्शित करती है जो एक निर्दिष्ट समय से अधिक समय से अवरुद्ध हैं हे

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

यदि आपका डेटाबेस सर्वर I / O का बहुत अधिक उपयोग कर रहा है, तो आप ऑपरेटिंग सिस्टम की I / O पेज लॉक लिमिट सेटिंग को बदल सकते हैं, जो ऑपरेटिंग सिस्टम की प्रभावी रीड / राइट दर को हार्ड डिस्क तक बढ़ा सकता है।
सबसे पहले, अपने विशिष्ट सर्वर लोड के लिए I / O को बेंचमार्क करें। फिर, regedit.exe में कुंजी खोलें:

एचकेएलएम \ सिस्टम \ CurrentControlSet \ नियंत्रण \ सत्र प्रबंधक \ मेमोरी प्रबंधन \ IoPageLockLimit

आपके कार्यों का उद्देश्य बेंचमार्किंग परिणामों में परिवर्तन के संदर्भ में इस कुंजी के मूल्यों का चरण-दर-चरण चयन सबसे इष्टतम मूल्य तक करना है।
इस कुंजी में, ऑपरेटिंग सिस्टम बाइट्स की अधिकतम संख्या पढ़ता है जिसका उपयोग वह I / O संचालन के लिए कर सकता है। डिफ़ॉल्ट 0 है, जो 512KB से मेल खाती है। इस मान को चरणों में बढ़ाएं, हर बार 512KB जोड़कर (उदाहरण के लिए: "512", "1024", आदि), और प्रत्येक परिवर्तन के बाद अपने सिस्टम को बेंचमार्क करें। जब तक आप I / O संचालन के थ्रूपुट में वृद्धि का निरीक्षण करते हैं, तब तक इस पैरामीटर को बढ़ाने के लिए समझ में आता है, जो मानक डिस्क संचालन पर खर्च किए गए समय में कमी में प्रकट हो सकता है। जब आप महत्वपूर्ण सुधार नहीं देखते हैं, तो रजिस्ट्री संपादक पर वापस लौटें और अंतिम वेतन वृद्धि को हटा दें।

चेतावनी: इस कुंजी के मान के अधिकतम आकार की एक सीमा है। यदि आपके पास 16 MB RAM है, तो IoPageLockLimit को 2048 बाइट्स से अधिक सेट न करें; 32MB RAM के लिए, 4096 बाइट्स से अधिक न हो, इत्यादि।

महत्वपूर्ण लेख:

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

इसे साझा करें