SQLServer 查看耗时较多的SQL语句
生活随笔
收集整理的這篇文章主要介紹了
SQLServer 查看耗时较多的SQL语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
直接執行如下SQL查詢:
SELECT TOP 20
? ? total_worker_time/1000 AS [總消耗CPU 時間(ms)],execution_count [運行次數],? ? qs.total_worker_time/qs.execution_count/1000 AS [平均消耗CPU 時間(ms)],
? ? last_execution_time AS [最后一次執行時間],max_worker_time /1000 AS [最大執行時間(ms)],
? ? SUBSTRING(qt.text,qs.statement_start_offset/2+1,?
? ? ? ? (CASE WHEN qs.statement_end_offset = -1?
? ? ? ? THEN DATALENGTH(qt.text)?
? ? ? ? ELSE qs.statement_end_offset END -qs.statement_start_offset)/2 + 1)?
? ? AS [使用CPU的語法], qt.text [完整語法],
? ? dbname=db_name(qt.dbid),
? ? object_name(qt.objectid,qt.dbid) ObjectName
FROM sys.dm_exec_query_stats qs WITH(nolock)
CROSS apply sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE execution_count>1
ORDER BY? total_worker_time DESC
其中[使用CPU的語法] 是指具體耗時較長的SQL。如果耗時長的SQL在存儲過程中,ObjectName 是存儲過程的名稱。dbname是對應的數據庫。
上述的排序是根據總耗時,total_worker_time來進行排序。如果是針對具體的SQL語句(忽略執行次數),可以根據 [平均消耗CPU 時間(ms)] 來進行排序,更準確的找到應該優化的SQL。
總結
以上是生活随笔為你收集整理的SQLServer 查看耗时较多的SQL语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MongoDB】Sharding分片概
- 下一篇: SQL Server 查询数据库里所有表