TSQL: Get Last Queries Ran

前端 未结 4 1670
傲寒
傲寒 2020-12-07 10:05

Is there a way to get the SQL text for the last few queries?

I am using Microsoft SQL Server 2005

4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-07 10:19

    If you need to inspect parameter values, this addition returns the XML

    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,
      SUBSTRING(
        s3.query_plan,CHARINDEX('',s3.query_plan),
        CHARINDEX('',s3.query_plan) + LEN('') - CHARINDEX('',s3.query_plan)
      ) AS Parameters,
      last_execution_time
    FROM sys.dm_exec_query_stats AS s1
    CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
    CROSS APPLY sys.dm_exec_text_query_plan(s1.plan_handle, s1.statement_start_offset,
      s1.statement_end_offset) AS s3
    ) x
    WHERE sql_statement NOT like 'SELECT TOP 50 * FROM(SELECT %'
    ORDER BY last_execution_time DESC
    

    Prettified version

提交回复
热议问题