本文為 SET STATISTICS PROFILE 實際分析、統計資訊三區塊結構與自動維護、視圖優化內展機制,並附 MSDN 官方參考連結,打造最完整的執行計畫分析參考手冊。
| 運算子 | 本質 | 效能 | 優化對策 |
|---|---|---|---|
| Table Scan | 掃描堆疊表全表 | 最差 | 建立叢集索引 |
| Clustered Index Scan | 掃描叢集索引全表 | 差 | 建立非叢集索引轉 Seek |
| Index Scan | 掃描非叢集索引部分 | 中 | 縮小範圍或改 Seek |
| Index Seek | 非叢集索引定位 + Key Lookup | 良 | 覆蓋索引移除 Lookup |
| Clustered Index Seek | 直接叢集索引定位 | 最佳 | 維護鍵值單調遞增 |
foreach outer: foreach inner: if match outputSET STATISTICS PROFILE ON;
SELECT ... FROM ... WHERE ...;
輸出執行過程表格,關鍵欄位:
Rows:實際產生列數。Executes:步驟執行次數。StmtText:運算子詳細描述。EstimateRows:優化器預估列數。自內而外閱讀:最內層=資料存取,中間=Join/彙總,最外層=最終輸出。
RANGE_HI_KEY、RANGE_ROWS、EQ_ROWS、DISTINCT_RANGE_ROWS、AVG_RANGE_ROWS。AUTO_CREATE_STATISTICS ON:查詢無索引欄位自動建立。AUTO_UPDATE_STATISTICS ON:~20% 資料變更觸發 (小表全掃描)。AUTO_UPDATE_STATISTICS_ASYNC:非同步更新,查詢不等待但用舊統計。UPDATE STATISTICS 或重建索引。OrdersView 無條件 → Clustered Index Scan;WHERE OrderId=1 → Clustered Index Seek。精通執行計畫分析,是從「試錯調優」邁向「精準診斷」的關鍵里程碑。