本文系統闡述資料庫生命週期三階段的優化成本差異,並詳細說明資料庫設計(正規化/反正規化)與 SQL 撰寫技巧對效能的決定性影響。
硬體/網路/OS/參數調校合計僅佔 40% 提升空間,應用與 SQL 優化佔 60%~80%。
優點:消除異常、易維護。缺點:多表 Join 降低查詢速度。
含 NULL 欄位不進 B-Tree 索引,優化器拒絕使用。對策:預設值、函式式索引、NOT NULL 約束。
-- 無法用索引
WHERE first_name || ' ' || last_name = 'George Bush'
-- 可用索引
WHERE first_name = 'George' AND last_name = 'Bush'
-- 變數拆解
WHERE first_name = SUBSTR(:name,1,INSTR(:name,' ')-1)
AND last_name = SUBSTR(:name,INSTR(:name,' ')+1)
WHERE last_name LIKE '%Bush%' -- 全表掃描
WHERE last_name LIKE 'Bush%' -- 可用索引
必須前置模糊時:Oracle Text、反向索引 + REVERSE()、函式式索引。
EXPLAIN PLAN / AUTOTRACE 驗證。