www.atpbike.com

SQL Server 历史SQL查询执行记录语句

有的时候,需要知道SQLSERVER执行了什么语句,可以用下面的方法:

SELECT TOP 30000
    total_worker_time/1000 AS [总消耗CPU 时间(ms)],
    execution_count [运行次数],
    qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 时间(ms)],
    last_execution_time AS [最后一次执行时间],
    min_worker_time /1000 AS [最小执行时间(ms)],
    max_worker_time /1000 AS [最大执行时间(ms)],
    
    SUBSTRING(qt.text,qs.statement_start_offset/2+1,
        (CASE WHEN qs.statement_end_offset = -1
        THEN DATALENGTH(qt.text)
        ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1)
    AS [使用CPU的语法], qt.text [完整语法],
    qt.dbid, dbname=db_name(qt.dbid),
    qt.objectid,object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE  execution_count>1 and qs.creation_time BETWEEN '2019-04-04 16:06:00' AND '2019-04-13 20:15:00' 
ORDER BY (qs.total_worker_time/qs.execution_count/1000) DESC


 

郑重声明:本文版权归原作者所有,本网站部分内容均来自转载文章,与本站观点无关,如果您认为本文侵犯了您的版权信息,请与我们联系修正,QQ:827320478。

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!