sys.dm_exec_query_plan_stats返回的QEP耗时与SSMS实际执行计划不一致
问题:sys.dm_exec_query_plan_stats返回的QEP耗时与实际值不符
我尝试使用LAST_QUERY_PLAN_STATS属性将每条执行语句的实际执行计划(Actual QEP)保存到数据仓库中,通过DMV sys.dm_exec_query_plan_stats可以正常捕获并保存计划。但打开保存后的QEP查看属性页时,发现其中显示的耗时与sys.dm_exec_query_plan_stats里的last_elapsed_time字段值、以及运行时直接获取的Actual QEP中的耗时均不一致。
我已经用简单脚本复现了这个问题,也在微软问答平台讨论过,想了解是否有其他人遇到过相同情况。
复现步骤及脚本
- 执行查询脚本:
--My script SET STATISTICS TIME ON SELECT TOP 50001 * FROM [dbo].[MyBigTable]
运行后,通过SET STATISTICS TIME得到的统计时间、以及直接获取的Actual QEP显示的耗时均为正常数值。
- 通过DMV提取QEP的脚本:
SELECT [qt].[text], [query_plan] = (SELECT TOP 1 [query_plan] FROM sys.dm_exec_query_plan_stats (a.[plan_handle])), [last_elapsed_time] = a.[last_elapsed_time] / 1000.0, a.[last_execution_time] FROM ( SELECT * FROM sys.dm_exec_query_stats qs WHERE creation_time > '2024-07-01 08:00:00' ) a CROSS APPLY (SELECT * FROM sys.dm_exec_sql_text(a.[plan_handle]) t ) qt WHERE qt.[text] LIKE '--My script%' ORDER BY 4 DESC
通过该脚本从sys.dm_exec_query_plan_stats获取的QEP,其属性页显示的耗时异常,但该QEP与运行时直接获取的QEP执行结构完全一致。
请问这是什么原因导致的?
内容的提问来源于stack exchange,提问作者AndreaD
相关产品推荐
相关产品推荐

