以下命令用于Windows操作系统
一、使用autotrace
进入sqlplus
1.使用utxlplan脚本创建表
sqlplus中执行命令
@?\rdbms\admin\utlxplan.sql
2.创建同义词为了多个用户可以共享一个plan_table 并授权给public
create public synonym plan_table for plan_table;
grant all on plan_table to public;
3.创建plustrace 角色
执行命令 @?\sqlplus\admin\plustrce.sql
4.将角色权限授予public
grant plustrace to public;
使用以下命令改变跟踪状态
进入sqlplus时,autotrace项默认是不打开的,以后使用set autotrace off 关闭状态
set autotrace on
开启状态后,执行的sql语句可以查看执行计划和查询信息
set autotrace traceonly
此状态执行sql语句只显示执行计划,不显示查询输出
SQL> set autotrace on
SQL> set autotrace traceonly
SQL> select table_name from user_tables;
关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
二、使用explain plan for查看执行计划:
通过键入explain plan for + [待分析sql文]执行解析;
其次输入SELECT * FROM TABLE( DBMS_XPLAN.DISPLAY() );命令可查看分析结果
三、使用sql_trace查看
在pl/sql或者sqlplus中,打开一个sql_window。
(1)先运行:alter session set sql_trace=true;
(2)再运行你那个返回结果不正确的SQL
(3)再运行:alter session set sql_trace=false;
(4)马上登陆到机器上,到$ORACLE_BASE/admin/sid/udump目录下。找到刚生成的.trc文件(假设文件名是1234455.trc)。执行命令:tkprof 1234455.trc aa.txt。查看aa.txt文件。这个文件里面有执行计划。看看执行计划每一步返回的结果集记录数是不是正确。
四、通过10053事件来查看,这里面可以查到一些关于SQL成本的详细信息
在pl/sql或者sqlplus中,打开一个sql_window。
(1)先运行:Alter session set events’10053 trace name context forever[,level {1/2}]’;
(2)再运行你那个返回结果不正确的SQL
(3)再运行:Alter session set events’10053 trace name context off’;
(4)马上登陆到10.1.4.10机器上,到$ORACLE_BASE/admin/sid/udump目录下。找到刚生成的.trc文件)。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70109/viewspace-687803/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/70109/viewspace-687803/