我正在處理一個腳本,我可以將它部署到任何SQL服務器上,這將爲服務器的使用情況提供一些有意義的統計信息。我很快意識到,雖然我從sys.dm_exec_query_stats的last_elapsed_time列獲得了一些令人懷疑的結果。看看下面的腳本,例如: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
我運行此,這裏是結果的樣品,我得到:
在第二屆專門尋找,在第三第四等行我的結果= - 我的問題基本上是,經過的時間怎麼會比'自從創造時間'?
當然,如果它是在1小時前創建的,那麼在上一次過去的時間內如何報告12個小時?
我知道我可能錯過了這個專欄的某個地方的基本含義,但我不知道在哪裏。我已經通過微軟文檔走了這樣的觀點:
sys.dm_exec_query_stats (Transact-SQL)
哪裏是描述last_elapsed_time列:
經過時間,報以微秒(但只能精確到 毫秒),用於這個計劃最近完成的執行
當然,如果它只是在1小時前創建,我不應該期望一個結果任何大於??
請有人可以幫助我在這裏...我開始質疑我自己的理智!
唉現在,它會這樣做!非常感謝SQLChao的快速回復!我會得到這個排序並更新答案! – CJH