本指南針對 SAP R/3 資料庫管理員,說明 SQL Server 7.0 在大型資料庫(VLDB)、高併發負載下的關鍵調校參數。雖針對 SAP R/3,但原則適用於所有大型企業級 SQL Server 部署。
Windows NT 系統層面調校
分頁檔大小
- 建議:至少為實體記憶體的 3 倍,且不小於 1 GB。
- 設定路徑:控制台 → 系統 → 效能 → 虛擬記憶體 → 變更 → 設定初始/最大值相同(避免動態擴展碎片)。
虛擬記憶體管理器 (VMM) 最佳化
- 網路設定:控制台 → 網路 → 服務 → 伺服器 → 勾選 最大化網路應用程式輸送量。
- 停用螢幕保護程式與桌面背景:選「無」背景、螢幕保護程式設「空白」並啟用密碼保護,減少 GUI 資源佔用。
對稱中斷分發 (Symmetric Interrupt Distribution)
多 CPU 伺服器可將網卡中斷動態分派給最閒置 CPU,避免單一 CPU 成為瓶頸。
- 支援平台:Pentium 系列 + Windows NT 4.0 HAL(含 APIC 硬體支援),Windows 2000 內建支援。
- 預設行為:NT 4.0 將所有網卡 DPC 指派給最高編號 CPU,易造成負載不均。
- 啟用方法:編輯登錄機碼
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NDIS\Parameters\ProcessorAffinityMask 設為 0(十進位),重開機生效。
- 適用判斷:效能監視器
Processor: % DPC Time > 50% 且 % Processor Time = 100% 時考慮啟用。
SQL Server 專屬調校
- 記憶體配置:啟用「動態記憶體管理」,保留 512MB~1GB 給 OS,其餘給 Buffer Pool。
- 平行處理:
sp_configure 'max degree of parallelism' 依 CPU 核心數與負載類型設定(OLTP 建議 1~4,OLAP 可較高)。
- 索引填滿因子:SAP 標準表多為高頻更新,建議
FILLFACTOR = 80~90 減少頁分割。
- 統計資料更新:排程
UPDATE STATISTICS 或啟用 AUTO_UPDATE_STATISTICS,確保查詢最佳化器有正確基數估計。
tempdb 擴展:多資料檔(每 CPU 核心 1 檔),預先擴展至預估大小,避免自動成長延遲。
SAP R/3 特定建議
- 定期執行 SAP 交易碼
DB02、DB12、DB13 監控資料庫狀態、備份排程、索引碎片。
- 大型表(如
BSEG, MSEG)依存取模式建立適當二級索引,但避免過度索引增加寫入負擔。
- 封存策略:配合 SAP 封存物件將歷史資料移出線上資料庫,控制資料表大小。
遷移至新版本提醒
SQL Server 7.0 已停止支援。現代 SAP on SQL Server 部署建議:
- SQL Server 2019/2022 + Windows Server 2019/2022
- 啟用 記憶體內部 OLTP、資料行存儲索引 加速分析查詢
- 使用 Always On 可用性群組 實現高可用
- 配合 SAP HANA 側寫或 Azure NetApp Files 儲存層優化