Oracle 不獨立運行,效能受限於外部資源。優先驗證 CPU、記憶體、網路無瓶頸,再進行資料庫層面調優,否則事倍功半。
| 資源 | 瓶頸徵兆 | 對策 |
|---|---|---|
| CPU | 執行佇列長度 > CPU 核心數 | 增加 CPU、關閉 Parallel Query 等高耗 CPU 功能 |
| 記憶體 | 發生分頁,交換區頻繁讀寫 | 增加實體記憶體、縮減 SGA、關閉 MTS(多執行緒伺服器) |
| 網路 | 大量 Net8 通訊延遲 | 優化應用端連線池、啟用 SDU/ TDU 調整、檢查防火牆/交換器延遲 |
監控工具:vmstat、glance、top、sar。
磁碟 I/O 比記憶體慢 10,000 倍。若交易透過 Primary Key 索引範圍掃描存取表,將表資料依 PK 順序物理重排,可大幅減少區塊讀取。
SELECT salary FROM employee WHERE last_name LIKE 'B%';
查詢 DBA_INDEXES.CLUSTERING_FACTOR:
CREATE TABLE new_tbl AS SELECT * FROM old_tbl ORDER BY pk_col (CTAS)適用場景:高容量 OLTP、索引範圍掃描、連續 Key 多筆查詢。隨機單筆 PK 存取無效益。
佔調優工作 90%,核心四準則:
ALTER TABLE ... CACHE,8i+ 強制放入 KEEP Pool。排序觸發情境:ORDER BY、GROUP BY、CREATE INDEX、索引不足導致 Merge Sort。
SORT_AREA_SIZE。關鍵參數:SORT_AREA_SIZE、SORT_AREA_RETAINED_SIZE。目標:避免磁碟排序,同時避免過度浪費記憶體。
核心參數:PCTFREE、PCTUSED、FREELISTS、FREELIST GROUPS。
| 參數 | 控制行為 | 高效能設定 | 高空間重用設定 |
|---|---|---|---|
| PCTFREE | 區塊從 Freelist 移出門檻(保留空間供更新) | 較高(如 20-30%) | 較低(如 10%) |
| PCTUSED | 區塊重回 Freelist 門檻 | 較低(如 20-30%) | 較高(如 60-80%) |