首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle SQL 效能優化系列 (1):優化器模式選擇與資料存取路徑

     編輯:Oracle 資料庫基礎

1. 選用適合的 Oracle 優化器

Oracle 提供三種優化器模式:

  • RULE (規則基礎):依固定規則決定執行計畫,不考慮資料分佈統計。
  • COST (成本基礎, CBO):依統計資訊估算各執行路徑成本,選擇最低成本計畫。
  • CHOOSE (選擇性):若表有統計資訊則用 CBO,否則用 RULE。

設定方式

可在 init.ora 設定 OPTIMIZER_MODE 參數(RULE、COST、CHOOSE、ALL_ROWS、FIRST_ROWS),或在 SQL/Session 層級覆蓋。

關鍵建議

  • 使用 CBO 必須定期執行 ANALYZE 更新統計資訊,確保決策準確。
  • 預設 CHOOSE 模式易導致非預期的全表掃描,建議明確指定 RULE 或 COST,避免不穩定執行計畫。

2. 存取 Table 的兩種方式

a. 全表掃描

循序讀取表中每一筆記錄。Oracle 以多區塊讀取優化,適合需存取大部分資料的情境。

b. 透過 ROWID 存取

ROWID 記錄資料的物理位置。索引提供快速查找 ROWID 的路徑,基於索引欄位的查詢可避免全表掃描,大幅提升效能。

理解這兩種存取路徑,是撰寫高效 SQL 與解讀執行計畫的基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved