公 告
登 陆
日志日历
日 志
评 论
链 接
统 计
 
http://blueicesoul.mypm.net
 
 
标题:   如何启用sqlplus的AutoTrace功能,并且保存sql的执行计划(附explain.sql脚本)

如何启用sqlplus的AutoTrace功能,并且保存sql的执行计划(附explain.sql脚本)

关于这个功能的现实意义:
公司连机到吉林远程操作很慢,但是我们开发人员又要看到一些sql在生产库上面的执行计划,所以可以用该功能让现场把sql的执行计划分析后保存到文本文件下,然后只要把文件发给总公司的开发人员调优就行了~


D:\ >sqlplus /nolog
。。。
SQL> connect / as sysdba
已连接。
SQL> @?\rdbms\admin\utlxplan
表已创建。
SQL> create public synonym plan_table for plan_table;
同义词已创建。
SQL> grant all on plan_table to public ;
授权成功。()
SQL> @?\sqlplus\admin\plustrce

……

SQL> grant plustrace to public ;
授权成功。

说明:
DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public
这样所有用户都将拥有plustrace角色的权限.
然后就可以使用AutoTrace的功能了.
关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ set autotrace on,但是不显示查询输出


接下去执行需要分析的脚本explain.sql:

sqlplus执行需在绝对路径前加@,如图:

根据explain.sql脚本里面spool命令指定的路径(spool D:\explain.txt;)找到该文本,例如 D:\explain.txt;

里面就是所有sql的执行计划。


explain.sql脚本:


set echo on;
set timing on;
set termout off;
set trimspool on;
SET AUTOTRACE TRACEONLY;
spool on;
spool D:\explain.txt;
语句1 ;
语句2 ;
语句3 ;

...
语句n ;
spool off;

blueicesoul 发表于 2009/10/20 8:52:00 阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志

发表评论:

    昵称:
    密码:
    主页:
    标题: