在查询sys.dm_exec_query_stats DMV 时,我在last_worker_time列上观察到一些有趣的行为。
通常,它为我正在监视的特定存储过程报告 0。但是偶尔它会返回一个非零值,当它返回时,它似乎总是 976。
MSDN 文档对last_worker_time 列进行了以下说明:
上次执行计划时消耗的 CPU 时间,以微秒为单位报告(但仅精确到毫秒)。
然而,这并不能解释奇怪的行为。谁能解释为什么 976 的价值如此之多?
我的 DMV 查询的以下简化版本产生了这种现象:
select
qs.last_worker_time
from
sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.plan_handle) st
where
db_name(st.dbid) = 'IntegrationManagement'
and object_name(st.objectid, st.dbid) in ('GetFromOutQueue')
SQL Server 2008 R2 实例托管在 VMware 上运行的 Windows Server 2008 R2 上。