Sql server SQL sys.dm_exec_query_stats Last_exposed_Time

Sql server SQL sys.dm_exec_query_stats Last_exposed_Time,sql-server,system-views,Sql Server,System Views,我正在编写一个可以部署到任何SQL server的脚本,该脚本将提供有关服务器使用情况的一些有意义的统计信息。不过我很快意识到,我从sys.dm\u exec\u query\u stats上的上一个“已用时间”列中得到了一些相当可疑的结果。以以下脚本为例: select creation_time, last_elapsed_time [last_elapsed_time_ms], last_w

我正在编写一个可以部署到任何SQL server的脚本,该脚本将提供有关服务器使用情况的一些有意义的统计信息。不过我很快意识到,我从sys.dm\u exec\u query\u stats上的上一个“已用时间”列中得到了一些相当可疑的结果。以以下脚本为例:

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
我运行了这个,下面是我得到的结果示例:

具体看第二、第三、第四等。。我的结果中的行=-我的问题基本上是,经过的时间怎么可能大于“自创建时间”

当然,如果它是在1小时前创建的,那么在地球上,它怎么会像上次经过的时间那样花费12个多小时呢

我知道我可能在某个地方遗漏了这个专栏的一个基本含义,但我就是看不到在哪里。我已浏览了此视图的Microsoft文档:

其中,is将上一次运行时间列描述为:

已用时间,以微秒为单位报告(但仅精确到 毫秒),用于最近完成的此计划的执行

当然,如果它是在一个小时前创建的,我不应该期望有比这更大的结果


有人能帮我吗。。。我开始怀疑我自己的理智

最后经过的时间以微秒为单位。您的
since\u create\u time\u ms
计算以毫秒为单位

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

啊,那就行了!!非常感谢您的快速回复!我将得到排序,并更新答案!