初学者总结-ORACLE系列培训_SQL调优.ppt
文本预览下载声明
ORACLE系列培训_SQL调优;ORACLE-调优范围;ORACLE-一般调整的思路;ORACLE-调优角色分配;ORACLE-SQL优化衡量标准;ORACLE-SQL优化过程;ORACLE-SQL解析过程回顾;ORACLE-绑定变量的注意项;ORACLE-优化器模式;ORACLE-访问数据表的方式;SQL语句的编写原则和优化 ;Tunning Tip的各个方面;1.不要让Oracle做得太多;避免复杂的多表关联;避免使用 ‘ * ‘;避免使用耗费资源的操作;例如:
低效:
SELECT DISTINCT DEPT_NO,DEPT_NAME
FROM DEPT D,EMP E
WHERE D.DEPT_NO = E.DEPT_NO
高效:
SELECT DEPT_NO,DEPT_NAME
FROM DEPT D
WHERE EXISTS ( SELECT ‘X’
FROM EMP E
WHERE E.DEPT_NO = D.DEPT_NO);;用UNION-ALL 替换UNION ( if possible);2. 给优化器更明确的命令;自动选择索引;至少要包含组合索引的第一列;避免在索引列上使用函数;避免使用前置通配符;避免在索引列上使用NOT;避免在索引列上使用 IS NULL和IS NOT NULL;避免出现索引列自动转换;在查询时尽量少用格式转换;3.减少访问次数;减少访问数据库的次数;使用DECODE来减少处理时间;减少对表的查询;4. 细节上的影响;WHERE子句中的连接顺序;WHERE子句 ——函数、表达式使用;Order by语句 ;联接列 ;带通配符(%)的like语句 ;用Where子句替换HAVING子句;用NOT EXISTS 替代 NOT IN;用索引提高效率;避免在索引列上使用计算;用= 替代 ;通过使用=、=等,避免使用NOT命令;如果有其它办法,不要使用子查询。;外部联接+的用法 ;尽量多使用COMMIT;用TRUNCATE替代DELETE;计算记录条数;比如有的表PHONE_NO字段是CHAR型,而且创建有索引,
但在WHERE条件中忘记了加引号,就不会用到索引。
WHERE PHONE_NO=
WHERE PHONE_NO;Thank you!
显示全部