उपयोग एसक्यूएल सर्वर प्रोफाइलर (SSMS में उपकरण मेनू पर) एक निशान है कि इन घटनाओं लॉग बनाने के लिए। आपने यह निर्दिष्ट नहीं किया है कि यह किसी विशिष्ट डेटाबेस या पूरे सर्वर के लिए है, यदि यह विशिष्ट डीबी के लिए है, तो डेटाबेस आईडी कॉलम शामिल करें और अपने डीबी (SELECT DB_ID('dbname')
) पर एक फ़िल्टर सेट करें। सुनिश्चित करें कि लॉजिकल रीड डेटा कॉलम प्रत्येक ईवेंट के लिए शामिल है। फ़ाइल में लॉग इन करने के लिए ट्रेस सेट करें। यदि आप पृष्ठभूमि में अनुपयुक्त चलाने के लिए इस ट्रेस को छोड़ रहे हैं, तो अधिकतम ट्रेस फ़ाइल आकार 500 एमबी या 1 जीबी कहने का अच्छा विचार है यदि आपके पास पर्याप्त कमरा है (यह सब इस बात पर निर्भर करता है कि सर्वर पर कितनी गतिविधि है, इसलिए आपको इसे चूसना और देखना होगा)।
संक्षेप में ट्रेस शुरू करें और फिर इसे रोक दें। गोटो फ़ाइल-> निर्यात-> स्क्रिप्ट ट्रेस परिभाषा और अपना डीबी संस्करण चुनें, और फ़ाइल में सहेजें। अब आपके पास एक एसक्यूएल स्क्रिप्ट है जो एक ट्रेस बनाता है जिसमें प्रोफाइलर जीयूआई के माध्यम से चलने से बहुत कम ओवरहेड होता है। जब आप इस स्क्रिप्ट को चलाते हैं तो यह ट्रेस आईडी (आमतौर पर @ID=2
) आउटपुट करेगा; इसे नीचे ध्यान दें।
एक बार जब आप एक निशान फ़ाइल (.trc) (या तो ट्रेस वजह से अधिकतम फ़ाइल आकार तक पहुँचने के लिए पूरा किया है या आपके द्वारा चलाए जा ट्रेस
EXEC sp_trace_setstatus @ID उपयोग बंद कर दिया, 0
EXEC sp_trace_setstatus है @ID , 2
आप प्रोफाइलर में ट्रेस लोड कर सकते हैं, या ClearTrace (बहुत आसान) का उपयोग या तो जैसे एक तालिका में इसे लोड:
SELECT * INTO TraceTable
FROM ::fn_trace_gettable('C:\location of your trace output.trc', default)
तो फिर तुम इसी प्रकार के डेटा को समेकित करने के लिए एक प्रश्न चला सकते हैं:
SELECT COUNT(*) AS TotalExecutions,
EventClass, CAST(TextData as nvarchar(2000))
,SUM(Duration) AS DurationTotal
,SUM(CPU) AS CPUTotal
,SUM(Reads) AS ReadsTotal
,SUM(Writes) AS WritesTotal
FROM TraceTable
GROUP BY EventClass, CAST(TextData as nvarchar(2000))
ORDER BY ReadsTotal DESC
एक बार जब आप महंगा प्रश्नों की पहचान की है, तो आप पैदा करते हैं और वास्तविक निष्पादन की योजना की जांच कर सकते हैं।
स्रोत
2008-11-03 04:35:07
चीयर्स मिच! थोड़ा और जटिल लगता है जिसे मैंने सोचा था, लेकिन मैं निश्चित रूप से इसे जाने दूंगा :) चीयर्स! –
फ्लैट आउट हो गया - मुझे उम्मीद है कि मैं नौ के अंत की ओर एक मौका प्राप्त करूँगा .. और फिर मैं सवाल को चिह्नित करूंगा या अधिक क्यू पूछूंगा। –