最大化 I/O 速度是提升 SQL Server 6.5 效能關鍵。增加記憶體配置可減少 I/O 需求,資料快取命中率越高越好。在不導致 Windows NT 頻繁分頁前提下,盡可能分配更多 RAM 給 SQL Server。
使用 sp_configure memory, 設定,單位為 2 KB 頁數。
VALUE = (TotalRAM_bytes - 50,000,000) / 2000VALUE = (2,147,483,648 - 50,000,000) / 2000 ≈ 1,048,741 (約 975,000 頁在文中範例)。EXEC sp_configure memory, 975000
RECONFIGURE WITH OVERRIDE
-- 需重啟 SQL Server 生效
| 計數器 | 解讀與對策 |
|---|---|
| Memory: Pages/sec | > 0 表示分頁活動。持續偏高 → 記憶體不足,需增加實體 RAM 或減少 SQL Server 記憶體配置。 |
| Process: Working Set (sqlservr) | 應接近 SQL Server 配置記憶體。若 set working set size = 0 由 NT 管理;=1 強制等於配置值。建議保持預設 (0)。 |
| Processor: %Processor Time | 持續 > 95% → CPU 瓶頸,考慮增加 CPU 或升級處理器。 |
| Processor: %Privileged Time | 若與 Physical Disk 計數器同步偏高 → I/O 子系統瓶頸。對策:更快磁碟陣列、啟用 Tempdb in RAM、降低 max async IO/max lazy writer IO。 |
| Processor: %User Time | 高值代表大量排序、彙總函數等 CPU 密集操作。對策:增加索引、簡化聯結、水平分割大表。 |
| Physical Disk: Avg. Disk Queue Length | 不應超過磁碟數的 1.5~2 倍。過高 → 增加磁碟 (RAID 陣列視為多顆磁碟)。 |
| SQLServer: Cache Hit Ratio | 越高越好。持續 < 80% → 增加記憶體。注意:此計數器自啟動起累計,長時間運行後無法反映即時狀態,需重啟或使用 DBCC MEMORYSTATUS 觀察即時命中率。 |
sp_configure memory、max async IO、lazy writer 參數。tempdb 置於快速磁碟或 RAM 磁碟 (若記憶體充裕)。