文档详情

初学者总结-ORACLE系列培训_SQL调优.ppt

发布:2017-07-04约字共50页下载文档
文本预览下载声明
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!
显示全部
相似文档