| 架構 | 全稱 | 特性 | 優點 | 缺點 |
|---|---|---|---|---|
| SMP | Symmetric Multi Processing | 多 CPU 對稱連接共享記憶體,均等存取成本 | 記憶體存取一致、程式設計簡單 | 總線競爭隨 CPU 增加劇增,擴展性受限 (通常數十顆) |
| MPP | Massive Parallel Processing | 邏輯分節點,各節點獨立資源 (CPU/記憶體/磁碟),無共享 | 擴展性極佳 | 節點間資料交換需軟體協調,複雜度高、一般應用效率低 |
| NUMA | Non-Uniform Memory Access | 邏輯分節點,可存取本地/遠端記憶體,本地遠快於遠端 | 兼顧 SMP/MPP 優點、易管理、擴展性好 | 遠端記憶體存取延遲大 |
trace flag 8048 將記憶體物件分割到 NUMA 節點層級| 計數器 | 建議閾值 | 說明 |
|---|---|---|
| Processor(_Total)\% Processor Time | < 80% (持續) | 整體 CPU 使用率 |
| System\Processor Queue Length | < 2 × CPU 核心數 | 等待排程的執行緒數 |
| SQLServer:SQL Statistics\Batch Requests/sec | - | 吞吐量基準 |
| SQLServer:SQL Statistics\SQL Compilations/sec | < 10% of Batch Requests | 編譯頻率過高表示計畫重用差 |
| SQLServer:SQL Statistics\SQL Re-Compilations/sec | < 10% of Compilations | 重編譯頻率 |
| sys.dm_os_schedulers | runnable_tasks_count = 0 | 排程器可執行任務佇列 |
| sys.dm_os_wait_stats | SOS_SCHEDULER_YIELD 低 | CPU 壓力等待類型 |
| 成因 | 徵兆 | 對策 |
|---|---|---|
| 計畫快取污染 (Ad-hoc) | Compilations/sec 高、計畫快取大量單用計畫 | 啟用 OPTIMIZE FOR AD HOC WORKLOADS、強制參數化 |
| 缺少索引/統計過期 | 掃描大量資料、CPU 做運算而非 I/O | 補索引、更新統計、查詢改寫 |
| 平行度過高 | CXPACKET 等待高、小查詢也平行 | 調整 MAXDOP、Cost Threshold for Parallelism |
| 過度編譯/重編譯 | Recompilations/sec 高 | 穩定計畫、避免臨時表重建、KEEPFIXED PLAN |
| CLR/擴展預存程序 | 非 SQL 程式碼消耗 CPU | 審查 CLR 程式碼、移至應用層 |