外部效能問題:調優起點
資料庫不孤立運行,CPU、記憶體、網路瓶頸會抵消所有內部調優成果。
兩大檢查重點
- CPU 佇列長度 > CPU 核心數:增 CPU 或關閉高耗資源組件(如 Parallel Query)
- 記憶體分頁:增實體記憶體、縮減 SGA、關閉多執行緒伺服器 (MTS)
工具:vmstat, glance, top, sar 取得伺服器統計,確保資源充足。
Row Re-sequencing 詳細實作
核心邏輯
- I/O 為回應時間最大成分,磁碟 I/O 比記憶體慢 10,000 倍
- 透過 CTAS 將表依主鍵索引順序重組,使連續塊順序與索引一致
- 索引範圍掃描可大幅減少物理讀取
量化效益
查詢 SELECT salary FROM employee WHERE last_name LIKE 'B%' 回傳 100 列:
- 未重組:至少 100 次物理讀(各列分散不同塊)
- 重組後:3 次讀取(1 索引塊 + 2 資料塊),減少 97% I/O
適用性判斷
- 查詢
DBA_INDEXES.CLUSTERING_FACTOR:
- ≈ 區塊數 → 已排序
- ≈ 列數 → 未排序,重組效益大
大表範圍查詢效能可提升 3 倍。
重組工具
CREATE TABLE AS SELECT (CTAS)
- Oracle 9i 線上表重組工具