三種模式:RULE (規則)、COST (成本/CBO)、CHOOSE (選擇性)。透過 init.ora 設定 OPTIMIZER_MODE (RULE/COST/CHOOSE/ALL_ROWS/FIRST_ROWS) 或 Session/SQL 層級覆蓋 (Hint)。
使用 CBO **必須定期執行 ANALYZE 收集統計資訊**。CHOOSE 模式下,有統計資訊則用 CBO,否則落回 RBO。預設 CHOOSE 易導致非預期全表掃描,**建議明確指定 RULE 或 COST**。
首次解析後 SQL 存入 SGA Shared Pool,所有用戶共享。**嚴格字元級比對**:大小寫、空白、換行必須完全相同才能共享。
SELECT * FROM EMP ≠ select * from emp。:blk1.pin ≠ :blk1.ot_ind,即使執行時值相同。DBA 應調大 SHARED_POOL_SIZE 提高命中率。注意:共享 SQL 僅適用單表,**多表連接不支援快取緩衝**。