核心目標:以最少磁碟 I/O 獲取所需資料
關鍵評估指標:
| 設計決策 | 優化目的 | 實作要點 | |
|---|---|---|---|
| 表與索引分離表空間 | 並行 I/O、減少爭用 | DATA_TBS / INDEX_TBS 分不同磁碟組/ASM Disk Group | |
| 熱點表分區 | Partition Pruning、Partition-wise Join、維護靈活 | Range/Interval (時間)、List (代碼)、Hash (均勻分布) | |
| 歷史資料歸檔 | 縮小活躍資料集、加速備份/統計收集 | Partition Exchange、DBMS_REDEFINITION、外部表 | |
| 資料塊大小 (DB_BLOCK_SIZE) | 減少 Row Migration/Chaining、提高傳輸效率 | 8K 標準、16K/32K 適用大行/LOB、建庫時決定不可變 | |
| 儲存參數 (PCTFREE/INITRANS/MAXTRANS) | 預留更新空間、減少遷移、支援高併發 | PCTFREE 10~20、INITRANS 依併發估算 (OLTP 20+) |
| 元件 | 關鍵指標查詢 | 目標 | 調整手段 |
|---|---|---|---|
| Shared Pool | V$LIBRARYCACHE.GETHITRATIO > .9SUM(RELOADS)/SUM(PINS) < .01 | 硬解析 < 1% | 增大 SHARED_POOL_SIZE、DBMS_SHARED_POOL.KEEP 熱門物件、消除 Literal SQL |
| Buffer Cache | 1 - (PHY/(CUR+CON)) > .95 | 物理讀最小化 | DB_CACHE_SIZE / DB_、DB_BLOCK_LRU_LATCHES、KEEP/RECYCLE Pool 隔離熱/冷資料 |
| Redo Log Buffer | V$SYSSTAT 'redo log space requests' = 0 | 零等待 | LOG_BUFFER (通常 1~10MB 足夠)、檢查 log file sync 等待 |
| Large Pool | V$SGASTAT WHERE POOL='large pool' | MTS/RMAN/PQ 不搶佔 Shared Pool | LARGE_POOL_SIZE、SHARED_SERVER_SESSIONS |
| PGA | V$PGASTAT 'cache hit percentage' > .9 | 排序/Hash 記憶體足夠 | PGA_AGGREGATE_TARGET (10g+ 自動)、SORT_AREA_SIZE (手動模式) |
AUTOEXTEND 或設 MAXSIZE、DBA_FREE_SPACE 監控。EXTENT MANAGEMENT LOCAL AUTOALLOCATE,消除 Data Dictionary Hot Block。DB_BLOCK_LRU_LATCHES (CPU 核心數倍數)、DML_LOCKS (依 V$ENQUEUE_STAT 調整)。V$SEGMENT_STATISTICS 找出 logical reads 高段、考慮 KEEP POOL、READ ONLY 表空間、Reverse Key Index (序列鍵插入熱點)。DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE 固化優良計畫。DBMS_SQLTUNE 自動調優產生 Profile。/*+ LEADING(t1 t2) USE_NL(t2) INDEX(t2 idx_col) */ 精確干預。SIZE AUTO、增量統計 (11g+)、系統統計 DBMS_STATS.GATHER_SYSTEM_STATS('INTERVAL')。| 類別 | 工具/腳本 | 用途 |
|---|---|---|
| 即時監控 | V$SESSION_WAIT, V$SESSION_LONGOPS, V$SQL_MONITOR | 當前等待、長操作、實時 SQL 監控 |
| 區間報表 | UTLBSTAT/UTLESTAT, STATSPACK (免費), AWR/ASH (診斷包) | 歷史負載基線、Top SQL、等待事件趨勢 |
| 計畫分析 | DBMS_XPLAN.DISPLAY_CURSOR, EXPLAIN PLAN, SQL TRACE (10046) + TKPROF | 執行計畫、實際統計、追蹤檔分析 |
| 自動化建議 | DBMS_ADVISOR (Segment/Index/SQL Access), SQL TUNING ADVISOR | 索引建議、SQL 改寫、存取路徑優化 |
| 圖形化 | OEM Cloud Control, SQL Developer DBA Panel, TOAD, PL/SQL Developer | 儀表板、Top Activity、Real-time SQL Monitoring |
Oracle 效能調優是系統工程:設計階段決定上限 (架構、分區、SQL 規範),運行階段逼近上限 (SGA、I/O、鎖、計畫穩定)。建立標準化開發流程、部署自動化監控基線、持續 PDCA 迭代,並將經驗沉澱為團隊資產,才能讓資料庫長期服務於業務增長。