暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于Autotrace执行计划报错SP2-0618,SP2-0611

原创 Anbob 2010-11-24
820
AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。
可能经常遇到的问题是建了个新用户,set autut on 时报错,如下
SQL> conn zhang/weizhao  --只有connect,resource角色的用户

Connected.

SQL> set autot on

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

SP2-0611: Error enabling STATISTICS report

但如果忽略,继续查询测试表
SQL> select * from test_cache; --这是我自己建的测试表
ID
----------
1
Execution Plan
----------------------------------------------------------
Plan hash value: 2492309226
--------------------------------------------------------------------------------
| Id  | Operation         | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |            |     1 |    13 |     3   (0)| 00:00:01 |
|   1 |  TABLE ACCESS FULL| TEST_CACHE |     1 |    13 |     3   (0)| 00:00:01 |
--------------------------------------------------------------------------------
Note
-----
- dynamic sampling used for this statement
只有这些,没有最后统计的详细信息,回到那个错误,明显发现是没有PLUSTRACE这个角色的权限,那继续


SQL> conn system/oracle

Connected.

SQL> grant plustrace to zhang;


Grant succeeded.


SQL> conn zhang/weizhao

Connected.



SQL> set autot on;

SQL> select * from test_cache;


ID

----------

1



Execution Plan

----------------------------------------------------------

Plan hash value: 2492309226


--------------------------------------------------------------------------------

| Id  | Operation         | Name       | Rows  | Bytes | Cost (%CPU)| Time     |

--------------------------------------------------------------------------------

|   0 | SELECT STATEMENT  |            |     1 |    13 |     3   (0)| 00:00:01 |

|   1 |  TABLE ACCESS FULL| TEST_CACHE |     1 |    13 |     3   (0)| 00:00:01 |

--------------------------------------------------------------------------------


Note

-----

- dynamic sampling used for this statement



Statistics

----------------------------------------------------------

0  recursive calls

0  db block gets

7  consistent gets

0  physical reads

0  redo size

409  bytes sent via SQL*Net to client

385  bytes received via SQL*Net from client

2  SQL*Net roundtrips to/from client

0  sorts (memory)

0  sorts (disk)

1  rows processed




AUTOTRACE Statistics常用列解释











































序号




列名




解释




1




db block gets




buffer cache中读取的block的数量




2




consistent gets




buffer cache中读取的undo数据的block的数量




3




physical reads




从磁盘读取的block的数量




4




redo size




DML生成的redo的大小




5




sorts (memory)




在内存执行的排序量




7




sorts (disk)




在磁盘上执行的排序量




附加:


如果用system (DBA)在给用户授权plustrace 角色时出错,

conn / as sysdba

---用sysdba登录

sql>grant plustrace to dba with admin option


--但如果sys 都提示不存在那个角色,就用脚本创建那个角色,同时分配几个视图的查询权限给角色


sql>@$ORACLE_HOME/sqlplus/admin/plustrce.sql


create role plustrace;
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$session to plustrace;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论