隨著資訊系統規模擴大,Oracle 作為主流大型資料庫,其效能調優至關重要。本文從資料庫層面與應用程式層面系統闡述調優策略。
CONTROL_FILES 參數指定多路徑 (建議 ≥ 3);相同 SQL 文本可共享游標,減少 Hard Parse,提升執行速度。
同一結果可用多種寫法,選擇可讀性高、執行計劃優的版本。
避免 SELECT *,僅取必要欄位,減少 I/O 與 Sort 區記憶體佔用。
索引 (AGE, ADDRESS):
WHERE AGE=28 AND ADDRESS='BEIJING' → 索引有效;WHERE AGE=28 → 索引有效 (前導欄);WHERE ADDRESS='BEIJING' → 索引失效 (非前導欄)。| 錯誤寫法 | 原因 | 改寫建議 |
|---|---|---|
WHERE SUBSTR(TELNO,2,2)='88' | 索引欄位用函數導致失效 | WHERE TELNO LIKE '88%' |
WHERE COL != 'X' / NOT IN | 否定條件通常導致全表掃描 | 改用 NOT EXISTS 或重寫邏輯 |
WHERE COL IS NULL | B-tree 索引不儲存 NULL,導致全表掃描 | 考慮函數索引或位圖索引 |
WHERE SAL+100 > 5000 | 索引欄位運算導致失效 | WHERE SAL > 4900 |
資料庫調優需從物理設計、參數配置、SQL 寫法三維度系統推進。本文方法源自實務經驗,可顯著提升 Oracle 效能,供同仁參考。