dm_exec_query_stats返回陈旧数据?

时间:2009-06-18 00:37:27

标签: sql-server

我一直在SQL Server 2005数据库上测试我的应用程序,并且正在尝试使用sys.dm_exec_query_stats建立查询性能的初步图片。

问题:我感兴趣的是一个特定的查询,因为total_elapsed_time和last_elapsed_time都是大数字。当我痒痒我的应用程序来调用该查询(这运行成功),然后刷新我的统计数据视图,我发现

1)execution_count已增加(预期) 2)last_execution_time已更新至现在(预期) 3)last_elapsed_time仍然是一个很大的值(不是预期的 - 我预计一个新值) 4)total_elapsed_time不变(矛盾?)

如果last_elapsed_time指的是@ last_execution_time发生的执行,那么total_elapsed_time应该增加了吗?

此文档:http://msdn.microsoft.com/en-us/library/ms189741(SQL.90).aspx告诉我last_execution_time是计划执行的最后一次,而last_elapsed_time来自“最近执行的计划”,但没有告诉我为什么这些可能会有所不同。

查询本身并不复杂(SELECT / WHERE / ORDER BY - 参数出现在where子句中,但没有巧妙的操作),该表现在可能有25行。

问题: 1)execution_count,last_execution_time和last_elapsed_time之间的真正关系是什么? 2)这种关系的文件在哪里(手册,第三方书,博客,错误罚单,石碑......)?

1 个答案:

答案 0 :(得分:0)

我不知道这是否真的回答了你的问题,但统计数据只有在大约20%的表格内容发生变化后才会更新。如果您使用UPDATE STATISTICS运行RECOMPILE,然后运行查询,那会有所不同吗?