Sql server 2008 查找最近编译的语句

Sql server 2008 查找最近编译的语句,sql-server-2008,Sql Server 2008,在我们的一台SQL 2008 R2服务器上,我遇到了与批处理运行次数相关的异常高的编译百分比。通常情况下,服务器在这方面运行得有点高(约占总批处理的25%),但今天它已接近80%。查看DMV向我展示了编译的内容,但没有告诉我它是何时发生的 我知道我可以用profiler(现在我正在这么做)提取这些数据,但我希望能找到历史上存储的数据 是否有人找到了这样做的方法,或者探查器是唯一的方法?当然,您可以在sys.dm\u exec\u query\u stats中使用creation\u time:

在我们的一台SQL 2008 R2服务器上,我遇到了与批处理运行次数相关的异常高的编译百分比。通常情况下,服务器在这方面运行得有点高(约占总批处理的25%),但今天它已接近80%。查看DMV向我展示了编译的内容,但没有告诉我它是何时发生的

我知道我可以用profiler(现在我正在这么做)提取这些数据,但我希望能找到历史上存储的数据


是否有人找到了这样做的方法,或者探查器是唯一的方法?

当然,您可以在
sys.dm\u exec\u query\u stats
中使用
creation\u time

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;

当然,您可以在
sys.dm\u exec\u query\u stats
中使用
creation\u time

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;

请不要使用探查器进行跟踪。您只会使服务器上的负载变得更糟。至少使用服务器端跟踪(无UI)或扩展事件。请不要使用探查器跟踪。您只会使服务器上的负载变得更糟。至少使用服务器端跟踪(无UI)或扩展事件。谢谢Aaron!我感谢你的帮助!谢谢你,亚伦!我感谢你的帮助!