AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。
可能经常遇到的问题是建了个新用户,set autut 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
可能经常遇到的问题是建了个新用户,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;
grant select on v_$sesstat to plustrace;
grant select on v_$statname to plustrace;
grant select on v_$session to plustrace;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




