欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQL Server 历史SQL执行记录

程序员文章站 2022-03-13 17:26:49
SELECT TOP 1000 --创建时间 QS.creation_time, --查询语句 SUBSTRING(ST.text,(QS.statement_start_offset/2)+1, ((CASE QS.statement_end_offset WHEN -1 THEN DATALEN ......

    编程执行Sql语句难免忘记保存执行的文本,或是意外设备故障多种情况的发生。对于写的简单的Sql语句丢了就丢了,但对于自己写的复杂的丢失就有些慌了,

  有时候很难再次写出来,这时候就需要用一些方法找回Sql语句,下面的方法只适合MS SQLServer:

    SELECT TOP 1000 

    --创建时间
    QS.creation_time,
    --查询语句
    SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,
    ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
    ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1
    ) AS statement_text,
    --执行文本
    ST.text,
    --执行计划
    QS.total_worker_time,
    QS.last_worker_time,
    QS.max_worker_time,
    QS.min_worker_time
    FROM
    sys.dm_exec_query_stats QS
    --关键字
    CROSS APPLY
    sys.dm_exec_sql_text(QS.sql_handle) ST
    ORDER BY
    QS.creation_time DESC
    参考:http://blog.csdn.net/gulingeagle/article/details/50725160

          http://blog.csdn.net/dingshuanglei/article/details/79460696