2012-05-26 14 views
11

में कोई प्रश्न पूछ रहा है क्या कोई प्रोग्राम या SQL क्वेरी है जो मुझे पता चल सकता है कि SQL सर्वर 2012 पर कौन से SQL क्वेरी चल रहे हैं? मुझे लगता है कि SQL सर्वर के पुराने संस्करण में एक उपकरण था जहां वास्तविक क्वेरी सामग्री प्रदर्शित होती है या संग्रहित प्रक्रिया का नाम होता है?वर्तमान में SQL सर्वर

+1

एसक्यूएल प्रोफाइलर है कि उपयोग करते हैं, है ना? :) –

उत्तर

6
यहाँ

क्या आप एसक्यूएल प्रोफाइलर http://msdn.microsoft.com/en-us/library/bb500441.aspx स्थापित करने की आवश्यकता है। हालांकि, अगर आप इसे अपने उत्पादन पर्यावरण पर करना चाहते हैं तो मैं आपको इस http://blog.sqlauthority.com/2009/08/03/sql-server-introduction-to-sql-server-2008-profiler-2/ के माध्यम से पढ़ने का सुझाव दूंगा। एक और बेहतर तरीके से प्रश्नों को देखने के लिए नहीं है यह एक घड़ी और देखो अगर यह मदद करता है http://www.youtube.com/watch?v=vvziPI5OQyE

4

उपकरण को SQL सर्वर प्रोफाइलर कहा जाता है, यह अभी भी मानक टूलसेट का हिस्सा है।

+0

'एसक्यूएल सर्वर प्रोफाइलर' कहां है? मेरे एमएस एसक्यूएल सर्वर 2012 में कोई 'प्रदर्शन उपकरण' फ़ोल्डर नहीं है। मुझे कोई अन्य उपकरण नहीं दिख रहा है। मैं इन उपकरणों को कैसे स्थापित करूं? मैंने सोचा कि सब कुछ स्थापित किया गया था। प्रोफाइलर अभी भी SQL सर्वर 2012 में है? इंस्टॉल इन कहां हैं? – iefpw

+0

एक गैर-एक्सप्रेस संस्करण के साथ, यह प्रबंधन उपकरण विकल्प के साथ आता है; व्यक्त संस्करणों में प्रोफाइलर – SqlACID

22

अपने विशेषाधिकार के आधार पर, इस प्रश्न के काम कर सकते हैं:

SELECT sqltext.TEXT, 
req.session_id, 
req.status, 
req.command, 
req.cpu_time, 
req.total_elapsed_time 
FROM sys.dm_exec_requests req 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 

रेफरी: http://blog.sqlauthority.com/2009/01/07/sql-server-find-currently-running-query-t-sql

+2

शामिल नहीं है यह काम करता है, लेकिन पैरामीटर मानों को जानने का कोई तरीका है? – jtate

3

वहाँ, इस है एसक्यूएल सर्वर DMV से कार्रवाई पुस्तक में:

उत्पादन spid (प्रक्रिया पहचानकर्ता) पता चलता है, ecid (यह एक ही थ्रेड के भीतर एक धागे के समान है और समानांतर में चल रहे प्रश्नों की पहचान के लिए उपयोगी है), उपयोगकर्ता SQL को चला रहा है, स्थिति (चाहे SQL चल रहा है या प्रतीक्षा कर रहा हो), प्रतीक्षा स्थिति (यह क्यों प्रतीक्षा कर रहा है) , होस्टनाम, डोमेन नाम, और प्रारंभ समय (यह निर्धारित करने के लिए उपयोगी है कि बैच कितनी देर चल रहा है)।

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

USE master 
GO 
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
SELECT 
er.session_Id AS [Spid] 
, sp.ecid 
, er.start_time 
, DATEDIFF(SS,er.start_time,GETDATE()) as [Age Seconds] 
, sp.nt_username 
, er.status 
, er.wait_type 
, SUBSTRING (qt.text, (er.statement_start_offset/2) + 1, 
((CASE WHEN er.statement_end_offset = -1 
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2 
ELSE er.statement_end_offset 
END - er.statement_start_offset)/2) + 1) AS [Individual Query] 
, qt.text AS [Parent Query] 
, sp.program_name 
, sp.Hostname 
, sp.nt_domain 


FROM sys.dm_exec_requests er 
INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid 
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle)as qt 
WHERE session_Id > 50 
AND session_Id NOT IN (@@SPID) 
ORDER BY session_Id, ecid 
14

मैं नीचे क्वेरी

SELECT SPID  = er.session_id 
    ,STATUS   = ses.STATUS 
    ,[Login]  = ses.login_name 
    ,Host   = ses.host_name 
    ,BlkBy   = er.blocking_session_id 
    ,DBName   = DB_Name(er.database_id) 
    ,CommandType = er.command 
    ,ObjectName  = OBJECT_NAME(st.objectid) 
    ,CPUTime  = er.cpu_time 
    ,StartTime  = er.start_time 
    ,TimeElapsed = CAST(GETDATE() - er.start_time AS TIME) 
    ,SQLStatement = st.text 
FROM sys.dm_exec_requests er 
    OUTER APPLY sys.dm_exec_sql_text(er.sql_handle) st 
    LEFT JOIN sys.dm_exec_sessions ses 
    ON ses.session_id = er.session_id 
LEFT JOIN sys.dm_exec_connections con 
    ON con.session_id = ses.session_id 
WHERE st.text IS NOT NULL 
+2

मुझे नौकरी चलाने वाले प्रश्नों के लिए अन्य खोजों की तुलना में यह अधिक उपयोगी पाया गया है। यह मेजबान और लॉगिन दिखाता है, जो बहुत अच्छा है, धन्यवाद! – russds