COMMIT 釋放:回滾段資訊、鎖定、Redo Log Buffer 空間、內部管理開銷。注意須平衡交易完整性。
COUNT(*) 略快於 COUNT(1),若有索引 COUNT(索引欄) 最快。實測三者差異不大。
HAVING 於全數擷取後過濾,需排序彙總。能用 WHERE 先過濾則減少開銷。
-- 低效
SELECT REGION, AVG(LOG_SIZE) FROM LOCATION
GROUP BY REGION
HAVING REGION != 'SYDNEY' AND REGION != 'PERTH';
-- 高效
SELECT REGION, AVG(LOG_SIZE) FROM LOCATION
WHERE REGION != 'SYDNEY' AND REGION != 'PERTH'
GROUP BY REGION;
HAVING 專用於彙總函數條件 (如 COUNT() > 5)。
-- 低效
SELECT TAB_NAME FROM TABLES
WHERE TAB_NAME = (SELECT TAB_NAME FROM TABLES WHERE ...);
合併或重寫避免重複掃描同一表。