首页 » ORACLE 9i-23c » 关于Autotrace执行计划报错SP2-0618,SP2-0611

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

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;
打赏

对不起,这篇文章暂时关闭评论。