2010-07-28 13 views
9

क्या कोई भी ऐसे विकल्प सुझा सकता है जो हमारे SQL सर्वर को भेजे गए सभी एसक्यूएल स्टेटमेंट्स को कैप्चर करने में हो सकता है, प्रोफाइलर चलाने के बाहर? मैं इसे करने के कुछ तरीकों से अवगत हूं, लेकिन यह सुनिश्चित करना चाहता हूं कि मैं कुछ नहीं देख रहा हूं, जैसे मौजूदा डीएम व्यू इत्यादि।एसक्यूएल सर्वर 2008 - सर्वर को मारने वाले सभी एसक्यूएल स्टेटमेंट्स को कैप्चर करना

बहुत बहुत धन्यवाद।

उत्तर

13

Extended Events एसक्यूएल सर्वर 2008 में ये काफी underused लगते हैं। शायद यूआई समर्थन की कमी के कारण, लेकिन एसक्यूएल ट्रेसेस (अधिक घटनाओं और बेहतर फ़िल्टरिंग संभावनाओं) की तुलना में अधिक लचीला वजन (अधिक फ़िल्टरिंग और ब्लॉक के बजाए घटनाओं को छोड़ने की संभावना के कारण)

उदाहरण वाक्यविन्यास नीचे है। यद्यपि इसके अलावा बहुत अधिक घटनाएं, क्रियाएं, भविष्यवाणी और आउटपुट लक्ष्य संभावनाएं हैं।

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='test_trace') 
DROP EVENT SESSION [test_trace] ON SERVER; 
CREATE EVENT SESSION [test_trace] 
ON SERVER 
ADD EVENT sqlserver.sql_statement_completed(
    ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text) 
    ) 
, 
ADD EVENT sqlserver.sp_statement_completed(
    ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text) 
    ) 
ADD TARGET package0.asynchronous_file_target 
(set filename = 'c:\temp\test_trace.xel' , metadatafile = 'c:\temp\test_trace.xem') 
ALTER EVENT SESSION [test_trace] ON SERVER STATE = START 

और परिणाम

SELECT CONVERT (XML, event_data) AS data 
     FROM sys.fn_xe_file_target_read_file ('C:\Temp\test_trace*.xel', 
     'C:\Temp\test_trace*.xem', NULL, NULL) 
+0

ऑब्जेक्ट एक्सप्लोरर में कहां (यदि बिल्कुल) इन घटनाओं को सूचीबद्ध किया गया है? – RonJohn

1

मुझे लगता है कि अपने विकल्पों को

  • Profiler
  • SQL Trace हैं (प्रोफाइलर एसक्यूएल ट्रेस का उपयोग करता है एक अनुप्रयोग है)
  • Triggers

हैं DMV की है कि इस तरह लंबे समय से चल रहा है के रूप में जानकारी एकत्र प्रश्न, लेकिन मुझे नहीं लगता कि एक ऐसा है जो आपको सबकुछ देगा।

1

यदि प्रोफाइलर के साथ आपकी समस्या यह नहीं है कि आप इसका उपयोग नहीं करना चाहते हैं, लेकिन आप इसका उपयोग नहीं कर सकते हैं, तो शायद आप Profiler for Microsoft SQL Server 2005/2008 Express Edition का उपयोग कर सकते हैं यह निःशुल्क और खुला स्रोत है।

+0

अब मुक्त या मुक्त स्रोत नहीं है, फिर भी यह उपयोगी हो सकता है। –

+0

बहुत बुरा। मैं यह भी नहीं देखता कि आप एक परीक्षण संस्करण प्राप्त कर सकते हैं, हालांकि ऐसा प्रतीत होता है कि स्टार्टर संस्करण काफी उचित मूल्य है। हालांकि, ओपन सोर्स इश्यू को संबोधित नहीं करता है। – DOK

0

क्या इसके लायक के लिए, पुस्तक समीक्षा करने के लिए "Microsoft SQL सर्वर के अंदर 2008 T-SQL प्रोग्रामिंग" एक महान ग्रेग कम द्वारा लिखित अध्याय है, उन सभी पर लग रहा है है SQL सर्वर 2008 में लॉगिंग और ऑडिटिंग विकल्प। यह चर्चा करता है कि प्रत्येक का उपयोग कब किया जाना चाहिए और प्रत्येक के समर्थक और विपक्ष। ऐसा कहकर, आपने जो किया है वह शायद सबसे अच्छा है।

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