• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > mssql2005教程 >

SQL查询日志 查看数据库历史查询记录的方法

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-07-01点击:

 在查询分析器中写了半天的SQL,竟忘了保存,坑爹啊~想找回某段时间曾执行过的一段SQL语句,怎么办?

首先假定你执行过它。没有?好吧,要么它太过简单,要么你太过不简单。

  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. WHERE  
  22. QS.creation_time BETWEEN '2011-10-20 16:00:00' AND '2011-10-20 17:00:00'  
  23. AND ST.text LIKE '%%'  
  24. ORDER BY  
  25. QS.creation_time DESC  

这里用到了SQL Server 2005 新增的 cross apply 和 outer apply 联接语句 ,用于交叉联接表值函数(返回表结果集的函数),更重要的是这个函数的参数是另一个表中的字段。 

【SQL Server】CROSS APPLY和OUTER APPLY的应用详解

猜你也喜欢看这些...

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ