查找最近编译的哪些语句

时间:2013-04-16 17:24:00

标签: sql-server-2008

在我们的一台SQL 2008 R2服务器上,我遇到了与批量运行次数相关的异常高比例的编译。通常服务器在这方面运行有点高(约占总批次的25%),但今天它更像是80%。看DMV会告诉我编译的内容但是没有告诉我它何时发生。

我知道我可以使用分析器来提取这些数据(现在我正在这样做),但希望找到一个存储在历史记录中的地方。

有没有人找到办法做到这一点,还是Profiler唯一的方法?

1 个答案:

答案 0 :(得分:1)

当然,您可以在creation_time中使用sys.dm_exec_query_stats

SELECT * FROM sys.dm_exec_query_stats AS s
  INNER JOIN sys.dm_exec_cached_plans AS p
  ON s.plan_handle = p.plan_handle
  CROSS APPLY sys.dm_exec_sql_text(s.sql_handle)
  ORDER BY creation_time DESC;