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

SQL Server 性能分析三板斧:STATISTICS IO、STATISTICS TIME 與執行計劃

     編輯:關於SqlServer

三大核心分析工具

判斷 SQL 語句執行效率,主要依賴以下三種手段:

  1. SET STATISTICS IO ON/OFF — 分析磁盤 I/O 活動量(邏輯讀、物理讀、掃描次數)
  2. SET STATISTICS TIME ON/OFF — 統計語法分析、編譯、執行各階段耗時
  3. 執行計劃 — 圖形化展示查詢優化器選擇的執行路徑(快捷鍵 Ctrl + L 顯示預估計劃,Ctrl + M 顯示實際計劃)

實戰演示流程

-- 1. 開啟統計開關
SET STATISTICS IO ON;
SET STATISTICS TIME ON;

-- 2. 執行帶聚合、分組、排序的查詢
SELECT 
    YEAR(OrderDate) AS OrderYear,
    MONTH(OrderDate) AS OrderMonth,
    COUNT(*) AS OrderCount
FROM Sales.SalesOrderHeader
GROUP BY YEAR(OrderDate), MONTH(OrderDate)
ORDER BY OrderYear, OrderMonth;

-- 3. 切換到「消息」頁簽查看 STATISTICS IO / TIME 輸出
-- 4. 切換到「執行計劃」頁簽分析運算子成本、索引建議等

常見疑問:為何出現 Worktable?

查詢中未直接引用 Worktable,但執行計劃中可能出現。這通常是因為:

  • 排序溢出:內存不足導致排序操作溢寫到 tempdb
  • 哈希匹配/聚合溢出:哈希表過大溢寫磁盤
  • 游標/臨時表操作:內部實現使用工作表

關注 Worktable 的邏輯讀數量,可判斷 tempdb 壓力大小。

樣本表結構 開啟統計開關 查詢結果與統計輸出

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