
美河学习在线 www.eimhe.com
Oracle 语句优化规则整理
目 录
1. 选用适合的 ORACLE 优化器 --------------------------------------------------------------------- 3
2. 访问 Table 的方式 ORACLE 采用两种访问表中记录的方式 ---------------------------- 3
3. 共享 SQL 语句 ---------------------------------------------------------------------------------------- 3
4. 选择最有效率的表名顺序(只在基于规则的优化器中有效) --------------------------- 5
5. WHERE 子句中的连接顺序。 -------------------------------------------------------------------- 6
6. SELECT 子句中避免使用 ‘ * ’ ------------------------------------------------------------- 6
7. 减少访问数据库的次数 -------------------------------------------------------------------------- 7
8. 使用 DECODE 函数来减少处理时间 ------------------------------------------------------------ 8
9. 整合简单,无关联的数据库访问 ------------------------------------------------------------- 8
10. 删除重复记录 -------------------------------------------------------------------------------------- 9
11. 用 TRUNCATE 替代 DELETE ----------------------------------------------------------------------- 9
12. 尽量多使用 COMMIT ------------------------------------------------------------------------------- 9
13. 计算记录条数 ------------------------------------------------------------------------------------- 10
14. 用 Where 子句替换 HAVING 子句 -------------------------------------------------------------- 10
15. 减少对表的查询 ---------------------------------------------------------------------------------- 11
16. 通过内部函数提高 SQL 效率。 --------------------------------------------------------------- 12
17. 使用表的别名(Alias) ----------------------------------------------------------------------- 13
18. 用 EXISTS 替代 IN -------------------------------------------------------------------------------- 13
19. 用 NOT EXISTS 替代 NOT IN ------------------------------------------------------------------- 13
20. 用表连接替换 EXISTS --------------------------------------------------------------------------- 14
21. 用 EXISTS 替换 DISTINCT ---------------------------------------------------------------------- 15
22. 使用 TKPROF 工具来查询 SQL 性能状态 ---------------------------------------------------- 15
23. 用 EXPLAIN PLAN 分析 SQL 语句 ------------------------------------------------------------- 16
24. 用索引提高效率 ---------------------------------------------------------------------------------- 17
25. 索引的操作 ---------------------------------------------------------------------------------------- 18
26. 基础表的选择 ------------------------------------------------------------------------------------- 19
27. 多个平等的索引 ---------------------------------------------------------------------------------- 20
28. 等式比较和范围比较 ---------------------------------------------------------------------------- 20
29. 不明确的索引等级 ------------------------------------------------------------------------------- 21
30. 强制索引失效 ------------------------------------------------------------------------------------- 22
31. 避免在索引列上使用计算。 ------------------------------------------------------------------- 23
32. 自动选择索引 ------------------------------------------------------------------------------------- 23
33. 避免在索引列上使用 NOT ---------------------------------------------------------------------- 24
34. 用>=替代> ------------------------------------------------------------------------------------------ 25
35. 用 UNION 替换 OR (适用于索引列) ------------------------------------------------------- 26
36. 用 IN 来替换 OR ----------------------------------------------------------------------------------- 29
37. 避免在索引列上使用 IS NULL 和 IS NOT NULL ------------------------------------------ 29
38. 总是使用索引的第一个列 ---------------------------------------------------------------------- 30
39. ORACLE 内部操作 --------------------------------------------------------------------------------- 31
40. UNION-ALL 替换 UNION ( 如果有可能的话) ------------------------------------------ 31
评论