SQL सर्वर प्रोफाइलर - केवल एक डेटाबेस से घटनाओं को प्रदर्शित करने के लिए ट्रेस कैसे फ़िल्टर करें?


381

मैं किसी विशिष्ट डेटाबेस के लिए SQL Server Profiler ट्रेस कैसे सीमित करूं? मैं यह नहीं देख सकता कि जिस तरह से मैं कनेक्ट करता हूं उस पर सभी डेटाबेस के लिए घटनाओं को न देखने के लिए ट्रेस को कैसे फ़िल्टर किया जाए।

जवाबों:


574

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


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

34
डेटाबेस को खोजने के लिए: [नाम], [dbid] से [मास्टर] का चयन करें। [dbo] [sysdat डेटाबेस] ORDER द्वारा [नाम]
शमौन

1
साथ ही आपके द्वारा चुने गए टेम्पलेट पर निर्भर करता है, यदि कोई हो। +1
मुस्कुराते हुए

2
और आपको इसे beforeट्रेस शुरू करना होगा । यदि आप इसे करते हैं - तो क्षेत्र संपादन योग्य नहीं होगा!
डार्कवल्कर

2
ट्रेसिंग को रोकने या इसे चलाने से पहले शुरू करने के लिए मत भूलना।
फेरी

42

SQL 2005 में, आपको पहले अपने ट्रेस में डेटाबेस का नाम कॉलम दिखाना होगा। सबसे आसान काम ट्यूनिंग टेम्पलेट चुनना है, जिसमें वह कॉलम पहले से ही जोड़ा गया है।

मान लें कि आपके पास फ़िल्टर करने के लिए ट्यूनिंग टेम्प्लेट चयनित है:

  • "ईवेंट्स सिलेक्शन" टैब पर क्लिक करें
  • "कॉलम फ़िल्टर" बटन पर क्लिक करें
  • सभी कॉलम दिखाएं (राइट साइड डाउन)
  • "डेटाबेसनाम" का चयन करें, दाएं हाथ के फलक में पसंद के बगल में स्थित प्लस पर क्लिक करें और अपना डेटाबेस नाम टाइप करें।

मैं हमेशा एक तालिका में ट्रेस को भी सहेजता हूं ताकि मैं तथ्य के बाद ट्रेस डेटा पर LIKE क्वेरी कर सकूं।


8

प्रयोग द्वारा मैं इसे देख पा रहा था:

जब SQL Profiler 2005 या SQL Profiler 2000 डेटाबेस में SQLServer 2000 में रहने वाले डेटाबेस के साथ प्रयोग किया जाता है - समस्या का उल्लेख समस्या बनी रहती है, लेकिन जब SQL Profiler 2005 SQLServer 2005 डेटाबेस के साथ प्रयोग किया जाता है, तो यह सही काम करता है!

सारांश में, समस्या SQLServer 2000 में प्रचलित और SQLServer 2005 में सुधार किया गया है।

SQLServer 2000 के साथ काम करते समय इस समस्या का हल है (जैसा कि wearejimbo द्वारा समझाया गया है)

  1. उस डेटाबेस के डेटाबेस को पहचानें जिसे आप नीचे दिए गए sddat डेटाबेस तालिका से क्वेरी करके फ़िल्टर करना चाहते हैं

    SELECT * 
    FROM master..sysdatabases 
    WHERE name like '%your_db_name%'   -- Remove this line to see all databases
    ORDER BY dbid
  2. SQL Profiler 2000 की नई ट्रेस विंडो में (DatabaseName के बजाय) डेटाबेस फ़िल्टर का उपयोग करें


4

ट्रेस गुणों में, सामान्य के शीर्ष पर ईवेंट्स चयन टैब पर क्लिक करें । फिर नीचे दाईं ओर Column Filters ... पर क्लिक करें । फिर आप चयन कर सकते हैं कि क्या फ़िल्टर करना है, जैसे कि या ।TextDataDatabaseName

विस्तार की तरह नोड और प्रतिशत के साथ अपने फिल्टर में प्रवेश %की तरह संकेत %MyDatabaseName%या %TextDataToFilter%%%संकेतों के बिना फ़िल्टर काम नहीं करेगा।

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


1

एक नया टेम्प्लेट बनाएं और DBname चेक करें। अपने ट्रेसफाइल के लिए उस टेम्पलेट का उपयोग करें।

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