2010-08-26 8 views

उत्तर

92

हाँ, एक बार देख ले, यह आप 50 सबसे हाल ही में मार डाला SQL कथन

एसक्यूएल 2005 और ऊपर केवल

SELECT TOP 50 * FROM(SELECT COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName, 
    execution_count,s2.objectid, 
    (SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset/2+1 , 
     ((CASE WHEN statement_end_offset = -1 
    THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2) 
ELSE statement_end_offset END)- statement_start_offset)/2+1)) AS sql_statement, 
     last_execution_time 
FROM sys.dm_exec_query_stats AS s1 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2) x 
WHERE sql_statement NOT like 'SELECT TOP 50 * FROM(SELECT %' 
--and OBJECTPROPERTYEX(x.objectid,'IsProcedure') = 1 
ORDER BY last_execution_time DESC 
+0

37000 (321) [माइक्रोसॉफ्ट] [ODBC SQL सर्वर ड्राइवर] [दे देंगे एसक्यूएल सर्वर] "sql_handle" एक मान्यता प्राप्त तालिका संकेत विकल्प नहीं है। यदि यह तालिका-मूल्यवान फ़ंक्शन के पैरामीटर के रूप में लक्षित है, तो सुनिश्चित करें कि आपका डेटाबेस संगतता मोड 90 पर सेट हो गया है। –

+0

जैसा कि मैंने 2005 और केवल 2000 रनर प्रोफाइलर के लिए कहा था। अगली बार इंगित करें कि आप किस SQL ​​सर्वर के चल रहे हैं – SQLMenace

+0

माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005 - 9.00 –

1

एक ही रास्ता मैं के बारे में पता कर रहा हूँ SQL Server Profiler चल रहा है। दुर्भाग्य से इसे निष्पादित किए जाने से पहले इसे शुरू करने की आवश्यकता है, इसलिए यदि आप "विज्ञापन" आधार पर कुछ ऐसा करने की उम्मीद कर रहे हैं, तो यह उपयुक्त नहीं होगा। यदि आप ट्रैक करने का प्रयास कर रहे हैं कि कोड का एक टुकड़ा क्या है और इसे निष्पादित करने वाले प्रश्नों को कैप्चर करना चाहते हैं, तो इसे एक इलाज करना चाहिए।

24

एसक्यूएल सर्वर का उपयोग कर 2005+ हैं:

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query] 
FROM sys.dm_exec_query_stats AS deqs 
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
ORDER BY deqs.last_execution_time DESC 

महान टिप SQLAuthority से!