首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

使用 fn_trace_gettable 分析 SQL Server Profiler 追蹤檔:找出最耗時前 100 條 SQL

     編輯:關於SqlServer

步驟一:將追蹤檔匯入資料表

SELECT * INTO TraceTable 
FROM fn_trace_gettable('E:\trace\mytrace.trc', default);

步驟二:統計分析最耗時 SQL

SELECT TOP 100 
    SUBSTRING(TextData, 1, 660) AS [SQL片段],
    COUNT(*) AS [執行次數],
    SUM(Duration/1000) AS [總耗時ms],
    AVG(Duration/1000) AS [平均耗時ms],
    AVG(CPU) AS [平均CPU ms],
    AVG(Reads) AS [平均讀取次數],
    AVG(Writes) AS [平均寫入次數]
FROM TraceTable
GROUP BY SUBSTRING(TextData, 1, 660)
ORDER BY SUM(Duration) DESC;

欄位說明

  • Duration:微秒(需除 1000 換算毫秒)。
  • TextData:完整 SQL 文本,取前 660 字元分組(避免參數值導致同一邏輯分散)。
  • 可依需求加入 `WHERE StartTime BETWEEN ...` 限定時間範圍。

應用價值

快速鎖定效能瓶頸 SQL,針對性優化(索引、查詢重寫、統計資訊更新),而非盲目調整。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved