SELECT * INTO TraceTable
FROM fn_trace_gettable('E:\trace\mytrace.trc', default);
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 字元分組(避免參數值導致同一邏輯分散)。快速鎖定效能瓶頸 SQL,針對性優化(索引、查詢重寫、統計資訊更新),而非盲目調整。