當懷疑硬體資源限制 SQL Server 效能時,監控下列效能物件與計數器,可量化證實猜測並找出瓶頸來源。
| 物件:計數器 | 警戒閾值 / 判讀 | 可能對策 |
|---|---|---|
| Memory: Pages/sec | 持續偏高 (> 50) 表示記憶體壓力、頻繁分頁 | 增加實體記憶體、降低 SQL Server 最大記憶體設定、優化查詢減少掃描 |
| Process(sqlservr): Working Set | 應接近 SQL Server 配置的最大記憶體 | 若遠小於配置值,檢查「保留工作集」設定或作業系統記憶體爭用 |
| Process(sqlservr): % Processor Time | 持續 > 95% | 增加 CPU 核心、升級處理器、優化高耗 CPU 查詢 (排序、Hash Join、彙總) |
| Processor: % Privileged Time | 與 Physical Disk 計數器同步偏高 | I/O 子系統瓶頸:升級磁碟陣列、分離資料/記錄/Tempdb、降低 max async IO / lazy writer IO |
| Processor: % User Time | 持續偏高 | 使用者模式 CPU 消耗:增加索引、簡化 Join、水平分割大表、避免大量排序/彙總 |
| PhysicalDisk: Avg. Disk Queue Length | > 磁碟數 × 1.5~2 | 增加磁碟數 (RAID 10)、分離檔案群組、啟用瞬間快照備份減輕 I/O |
| SQLServer: Cache Hit Ratio | 持續 < 80% (啟動後累計值參考性有限) | 增加記憶體、優化查詢計畫重用、檢查參數嗅探、適當使用計畫指南 |
sys.dm_exec_query_stats (2005+) 或 Profiler 追蹤高耗資源查詢,將計數器異常與具體 T-SQL 關聯。Tempdb 磁碟佇列與版本存放區大小,防止 Tempdb 爭用拖垮整體效能。效能監控非單一指標斷言,需多維度計數器交叉驗證 (CPU+磁碟+記憶體+快取),並關聯具體查詢工作負載,才能精準定位瓶頸並實施有效優化。