SQL Server里如何查询历史SQL执行记录?
摘要:编程执行Sql语句难免忘记保存执行的文本,或是意外设备故障多种情况的发生。对于写的简单的Sql语句丢了就丢了,但对于自己写的复杂的丢失就有些慌了,有时候很难再次写出来,这时候就需要用一些方法找回Sql语句,下面的方法只适合MS SQLSer
编程执行Sql语句难免忘记保存执行的文本,或是意外设备故障多种情况的发生。对于写的简单的Sql语句丢了就丢了,但对于自己写的复杂的丢失就有些慌了,有时候很难再次写出来,这时候就需要用一些方法找回Sql语句,下面的方法只适合MS SQLServer:
1 SELECT TOP 1000
2 --创建时间
3 QS.creation_time,
4 --查询语句
5 SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,
6 ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text)
7 ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1
8 ) AS statement_text,
9 --执行文本
10 ST.text,
11 --执行计划
12 QS.total_worker_time,
13 QS.last_worker_time,
14 QS.max_worker_time,
15 QS.min_worker_time
16 FROM
17 sys.dm_exec_query_stats QS
18 --关键字
19 CROSS APPLY
20 sys.dm_exec_sql_text(QS.sql_handle) ST
21 ORDER BY
22 QS.creation_time DESC
参考:http://blog.csdn.net/gulingeagle/article/details/50725160 http://blog.csdn.net/dingshuanglei/article/details/79460696
