Linux 变量的trace属性,Autotrace 用法总结

对一条SQL语句生成执行计划,可以采用的方法有:使用explain plan或者sql Developer按F5或者采用AUTOTRACE。

其中AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计。

AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。然而AUTOTRACE分析和执行

语句;而EXPLAIN PLAN仅分析语句。

一、使用前设置及 Autotrace 授权

1.任何以 SQL*PLUS 连接的 session 都可以用 Autotrace ,不过还是要做一些设置的,否则可能报错。

报错示例:

SQL> set autotrace on;

SP2-0613: Unable to verify PLAN_TABLE format or existence

SP2-0611: Error enabling EXPLAIN report

SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled

SP2-0611: Error enabling STATISTICS report

该错误的的主要原因是当前用户下没有 PLAN_TABLE 这张表及相应的 PLUSTRACE 角色权限。

2.通过以下方法可以把Autotrace的权限授予Everyone,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。

C:\Documents and Settings\zhaoss> sqlplus / as sysdba

SQL> @?\rdbms\admin\utlxplan --创建 PLAN_TABLE表

SQL> create public synonym plan_table for plan_table; --创建同义词

SQL> grant all on plan_table to public ;

SQL> @?\sqlplus\admin\plustrce --创建角色并为角色赋权限

SQL> drop role plustrace;

SQL> create role plustrace;

SQL> grant select on v_$sesstat to plustrace;

SQL> grant select on v_$statname to plustrace;

SQL> grant select on v_$session to plustrace;

SQL> grant plustrace to dba with admin option;

SQL> set echo off

DBA用户首先被授予了plustrace 角色,然后我们可以把 plustrace 授予 public ;这样所有用户都将拥有 plustrace 角色的权限.

SQL> grant plustrace to public ;

二、set autotrace语法及选项的说明

1.用法:SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]

OPTION说明

SET AUTOTRACE OFF 此为默认值,即关闭Autotrace

SET AUTOTRACE ON 同时输出执行结果以及统计信息和执行计划信息。

SET AUTOTRACE TRACEONLY 不显示命令的执行结果,显示执行计划和统计信息,但在traceonly的后面仍然可以追加explain或者

statistics,和set autotrace on [explain|statistics]很像,但是不显示执行结果。

SET AUTOTRACE ON EXPLAIN 只显示执行结果和执行计划,不显示统计信息。

SET AUTOTRACE ON STATISTICS 只显示执行结果和统计信息,不显示执行计划。

2.AUTOTRACE Statistics 常用列解释

db block gets 从buffer cache中读取的block的数量

consistent gets 从buffer cache中读取的undo数据的block的数量

physical reads 从磁盘读取的block的数量

redo size DML 生成的redo的大小

sorts (memory) 在内存执行的排序量

sorts (disk) 在磁盘上执行的排序量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值