應用系統 70%-90% 資料庫資源消耗在 SQL 執行上。查詢優化非純 DBMS 內建功能,開發人員撰寫的 SQL 直接決定優化器能否產生好計劃。優秀計劃可提升數十倍效能,且優化成本遠低於程式碼重構。
ORDER BY/GROUP BY 欄建索引COUNT(DISTINCT col) / COUNT(*)大量重複值 + 範圍查詢(BETWEEN, >, <, >=, <=)+ ORDER BY/GROUP BY → 考慮叢集索引(IOT 索引組織表)。
常同時存取多欄、各欄有重複值 → 覆合索引。前導欄必須為最高頻查詢欄,形成索引覆蓋避免回表。
BETWEEN, >, <)不用 LIKE,萬用字元匹配極耗時EXPLAIN PLAN、AUTOTRACE、SQL Tuning Advisor)EXPLAIN PLAN 檢視存取路徑DBMS_STATS),避免優化器「盲人摸象」WHERE salary > 60000 對 money 欄位)FORALL、BULK COLLECT)減少上下文切換