調優層級總覽
- 外部環境調整:CPU、記憶體、網路資源確保
- Row Re-sequencing:重組表列順序減少磁碟 I/O
- SQL 調優:消除全表掃描、最佳化索引與 Join
- 排序調整:記憶體排序區設定、避免磁碟排序
- 競爭調整:表/索引儲存參數優化 DML 效能
外部環境:調優前提
若硬體資源成瓶頸,任何資料庫參數調整皆無效。
- CPU:執行佇列 > CPU 核心數 → 需增 CPU 或關閉 Parallel Query
- 記憶體:發生分頁 → 增加實體記憶體、縮減 SGA、關閉 MTS
- 網路:大量 Net8 通訊拖慢 SQL
工具:vmstat, glance, top, sar 監控伺服器統計。
Row Re-sequencing:減少 I/O 核心技巧
- 目標:將表資料依主鍵索引順序物理重組(CTAS 或 9i 線上重組)
- 原理:索引範圍掃描時,連續資料塊可一次讀取多行,減少物理 I/O
- 適用:OLTP 環境、主鍵範圍查詢、多行存取
- 不適用:隨機單筆主鍵存取
實例:SELECT ... WHERE last_name LIKE 'B%' 原需 100 次 I/O,重組後僅 3 次(1 索引 + 2 資料塊)。
判斷依據:DBA_INDEXES.CLUSTERING_FACTOR 接近區塊數 = 已排序;接近列數 = 未排序。
效能提升可達 3 倍。
工具選擇
CREATE TABLE AS SELECT (CTAS)
- Oracle 9i 內建線上表重組工具