sql-server - SQL sys.dm_exec_query_stats Last_Elapsed_Time 废话

标签 sql-server system-views

我正在编写一个可以部署到任何 SQL 服务器的脚本,该脚本将提供一些有关服务器使用情况的有意义的统计信息。我很快意识到,我从 sys.dm_exec_query_stats 的 last_elapsed_time 列中得到了一些相当可疑的结果。以下面的脚本为例:

select
    creation_time,
    last_elapsed_time                                       [last_elapsed_time_ms],
    last_worker_time                                        [last_worker_time_ms],
    DATEDIFF(MILLISECOND, creation_time, getdate())         [since_creation_time_ms],


    convert(varchar(20), DATEDIFF(DAY, 0, CONVERT(VARCHAR,DATEADD(ms,last_elapsed_time,0),113))) + ' days ' +
    CONVERT(VARCHAR,DATEADD(ms,last_elapsed_time,0),114)    [last_elapsed_time_format],

    convert(varchar(20), DATEDIFF(DAY, 0, CONVERT(VARCHAR,DATEADD(ms,last_worker_time,0),113))) + ' days ' +
    CONVERT(VARCHAR,DATEADD(ms,last_worker_time,0),114)     [last_worker_time_format],

    convert(varchar(20), DATEDIFF(DAY, creation_time, getdate())) + ' days ' +
    CONVERT(VARCHAR,DATEADD(ms,DATEDIFF(MILLISECOND, creation_time, getdate()),0),114)  [since_creation_time]

from sys.dm_exec_query_stats
order by last_elapsed_time desc

我运行这个,这是我得到的结果示例:

![enter image description here

具体查看结果中的第 2、第 3、第 4 等行 =- 我的问题基本上是,耗时如何大于“自创建时间”?

当然,如果它仅在 1 小时前创建,那么根据上次运行时间报告,它到底如何花费了 12 个小时以上?

我知道我可能在某个地方遗漏了本专栏的基本含义,但我就是看不出在哪里。我已经浏览了 Microsoft 文档以获得此 View :

sys.dm_exec_query_stats (Transact-SQL)

其中将last_elapsed_time 列描述为:

Elapsed time, reported in microseconds (but only accurate to milliseconds), for the most recently completed execution of this plan

当然,如果它是在 1 小时前创建的,我就不应该期待比这更大的结果?

请有人帮助我...我开始怀疑自己的理智!

最佳答案

最后耗时以微秒为单位。您的 since_create_time_ms 计算以毫秒为单位

DATEDIFF(ms, creation_time, getdate())         [since_creation_time_ms]

关于sql-server - SQL sys.dm_exec_query_stats Last_Elapsed_Time 废话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41169400/

相关文章:

sql - 将数据透视表中的 NULL 替换为 0 并结合 avg CAST

sql-server - 在表中间添加列时出现数据丢失警告

mysql - MySQL 中的系统 View

oracle - 从数据字典中查找包全局变量

sql-server-2005 - 从数据库中选择所有 UDF?

sql - 不包含查询

sql-server - MVC 5新项目标识表到sql server

sql - "No column information was returned"从空 Excel 工作表中选择时出错

sql-server - SQL Server 如何确定序列中的下一个值?