資料庫優化非單點動作,需從六大維度系統性推進,依專案階段優先序執行。
| 代號 | 維度 | 階段 | 關鍵動作 |
|---|---|---|---|
| A | 資料結構設計 | 開發前 | 分區表、索引策略、正規化/反正規化、資料型別選擇 |
| B | 應用架構設計 | 開發前 | 兩層/三層/微服務、連線池、快取策略、非同步處理 |
| C | SQL 語句調優 | 開發中/上線後 | 執行計畫分析、綁定變數、索引覆蓋、改寫 WHERE 子句、Hint |
| D | 記憶體分配 | 運行中 | SGA(共享池、資料緩衝區、Redo Log Buffer)、PGA、自動記憶體管理 (AMM/ASMM) |
| E | 磁碟 I/O 平衡 | 部署前 | 表空間跨磁碟、ASM 磁碟組、Redo Log 多工、資料檔/索引/暫存/Undo 分離 |
| F | OS 參數調校 | 部署前/運行中 | shmmax/sem、檔案描述符、網路緩衝區、HugePages、CPU 親和性、NUMA 平衡 |
SGA 不是越大越好。超過實體記憶體觸發 Swap,效能雪崩。監控 v$sgastat、v$pgastat,配合 MEMORY_TARGET (AMM) 或 SGA_TARGET/PGA_AGGREGATE_TARGET (ASMM) 動態平衡。
優化是系統工程,六大維度缺一不可,依階段 ROI 排序投入資源,才能以最小成本換取最大效能紅利。