引言
隨著網路應用與電子商務爆發,資料庫規模急增,效能瓶頸日益凸顯。Oracle 高度可優化,持續調優可預防瓶頸。核心原則:以最少磁碟存取取得所需資料。評價指標:回應時間、吞吐量、可用性、緩衝區命中率、記憶體使用效率。
調優順序原則
遵循「先易後難、先設計後運行」順序,前期調優可避免後期高成本修正。
階段一:系統設計開發階段調優
1. 應用架構選型
- C/S 兩層 vs B/W/D 三層:資源需求差異大,三層架構利於連線池與中介層快取。
2. 善用分區、索引與歸檔
- 高增長表採用 分區表;
- 高頻存取表建立 索引;
- 靜態歷史資料移入 歸檔表,縮小線上查詢範圍。
3. 撰寫高效 SQL
- 使用綁定變數,促進游標共享,減少解析;
- 善用索引減少資料區塊存取;
- 採用 Oracle Optimizer 與 Row-level Lock Manager 輔助調優。
4. 磁碟 I/O 佈局
開發前完成:
- 同一表空間資料檔分佈於不同磁碟,均衡 I/O;
- 表與索引分離不同表空間/磁碟;
- 使用者表空間與 SYSTEM 表空間分離;
- 建立專用回滾段表空間、臨時表空間 (排序操作),減少碎片與爭用。
5. 確定區塊大小與儲存參數
DB_BLOCK_SIZE 建庫後不可變 (除非重建),依樣本資料決定;
- 儲存參數 (
INITIAL/NEXT/PCTINCREASE) 依業務增長趨勢設定,預分配空間減少動態擴展開銷;
- 理想狀態:一個 Segment 僅佔一個 Extent。
階段二:資料庫運行階段調優
- 作業系統層面:CPU 排程、記憶體交換、磁碟排程;
- 資料庫層面:SGA/PGA 調整、統計資訊收集、鎖爭用分析、等待事件診斷 (v$session_wait);
- 應用層面:連線池調整、SQL Profile、Plan Stability、Resource Manager。
結語
效能調優是持續迭代過程。設計階段奠定基礎,運行階段精準微調。建立監控基線、定期收集 AWR/Statspack 報告、建立變更管理流程,方能長期維持系統高效穩定。