分类: Oracle
2012-05-04 00:17:18
注意:
如果PLAN_TABLE表不存在:
执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
如果PLUSTRACE角色不存在,
执行$ORACLE_HOME/sqlplus/admin/plustrce.sql
执行set autotrace on; 生成AUTOTRACE 报告; 然后执行[目标sql语句],当完成后会把结果及执行计划、统计信息等自动显示出来。
关于Autotrace几个常用选项附加说明:
1、SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
2、SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
3、SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
4、SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
5、SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询
3. dbms_system存储过程生成执行计划
优化提示
Oracle的优化器有三种: COST, RULE, CHOOSE
两种访问表中数据的方式: 全表扫描, 通过ROWID访问
1. where语句的连接顺序: 自下至上解析, 表之间的连接写在其它where语句前面, 过滤最大数量的语句写在最后
2. 减少访问数据库的次数
3. 使用DECODE函数避免重复扫描相同记录和重复连接相同的表
4. 使用TRUNCATE代替DELETE, TRUNCATE只能删除全表, 属于DDL
5. 尽量多使用COMMIT 释放资源
6. 使用WHERE代替HAVING
7. 减少对表的查询