| 參數 | 說明 | 調校方向 |
SGA_TARGET / SGA_MAX_SIZE | SGA 總大小 (自動共享記憶體管理 ASMM) | 實體記憶體 40%~60%,留足 OS/PGA 空間 |
DB_CACHE_SIZE | 預設緩衝區快取 (手動管理時) | 配合 DB_16K_CACHE_SIZE 等多區塊大小 |
SHARED_POOL_SIZE | 共用池大小 (Library/Data Dictionary Cache) | 監控 V$SGASTAT free memory,避免 ORA-04031 |
LARGE_POOL_SIZE | 大型池 (RMAN、共用伺服器、平行查詢) | 若使用 MTS/RMAN 平行備份需適度配置 |
JAVA_POOL_SIZE | Java 池 | 若無 Java Stored Procedure 可設最小值 |
PGA_AGGREGATE_TARGET | PGA 總量目標 (自動 PGA 管理) | 實體記憶體 20%~30%,監控 V$PGA_TARGET_ADVICE |
DB_FILE_MULTIBLOCK_READ_COUNT | 全表掃描多區塊讀取數 | 預設 128 (1MB),視儲存裝置最佳化 |
LOG_BUFFER | 重做日誌緩衝區 | 通常 1MB~100MB,觀察 log buffer space 等待 |
CHECKPOINT_PROCESS | 啟用 CKPT 背景程序 | TRUE (現代版本預設) |
FAST_START_MTTR_TARGET | 目標平均復原時間 (秒) | 依業務 RTO 設定,間接控制 checkpoint 頻率 |
OPTIMIZER_MODE | 優化器模式 | ALL_ROWS (OLAP) / FIRST_ROWS_n (OLTP) |
CURSOR_SHARING | 游標共用策略 | EXACT (預設) / FORCE (強制字面值轉綁定,需測試) |
| 爭用類型 | 典型等待事件 | 對策 |
| Library Cache Lock/Pin | library cache lock, library cache pin | 使用綁定變數、減少 DDL、增大 SHARED_POOL、啟用 Cursor Sharing |
| Row Cache Lock | row cache lock | 增大 SHARED_POOL、固定熱門物件 (DBMS_SHARED_POOL.KEEP) |
| 序列鎖 | enq: SQ - contention | CACHE 1000、ORDER/NOORDER 視需求、考慮可擴展序列 (12c+) |
| 熱塊 | buffer busy waits, gc buffer busy (RAC) | 反向鍵索引、分區表、增加 PCTFREE、Hash Partition |
| TX 鎖 (行鎖) | enq: TX - row lock contention | 縮短交易、避免長交易、索引 FK 欄位、應用層樂觀鎖 |
Oracle 效能調校是「觀測 → 假設 → 驗證 → 固化」的循環。沒有銀彈,只有針對特定負載、硬體、版本的持續優化。建立完整監控體系、保留歷史基線、養成變更管理流程,才是長期穩定的關鍵。