31 ,32 , 33 ,34 keywords : oracle storage structure
最详细讲解:
1:doc 1 logical storage structure
2:doc 2 physical storage structure
打开后可以看到执行过程中的统计信息:
首先用dba登录:
drop role plustrace;
Role dropped.
create role plustrace;
Role created.
.
grant plustrace to dba with admin option;
Grant succeeded.
然后授权给HR;
GRANT PLUSTRACE TO HR;
Grant succeeded.
然后用HR用户登录:
SQL> conn HR/HR
已连接。
SQL> set auto trace
SP2-0158: 未知的 SET autocommit 选项 "trace"
用法: SET AUTO[COMMIT] { OFF | ON | IMM[EDIATE] | n }
SQL> set autot trace
SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色
SP2-0611: 启用 STATISTICS 报告时出错
报了以上错误: 以上错误解决方法:
1: 用oracle dba用户登录
2:执行如下授权命令:
SQL> conn /as sysdba
已连接。
SQL> grant select on v_$sesstat to plustrace; 授权成功。 SQL> grant select on v_$statname to plustrace; 授权成功。 SQL> grant select on v_$mystat to plustrace; 授权成功。 SQL> grant plustrace to dba with admin option; 授权成功。 SQL> grant plustrace to HR; 授权成功。 SQL> exit
授权完成后用oracle 普通用户HR登录: 打开 autotrace on 即可: 就能看到执行计划和 统计信息了。
SQL> conn HR/HR
已连接。
SQL> select count(*) from employees; COUNT(*)
----------
107 SQL> set autotrace on
SQL> select count(*) from employees; COUNT(*)
----------
107 执行计划
----------------------------------------------------------
Plan hash value: 3580537945 -------------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 1 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | INDEX FULL SCAN| EMP_EMAIL_UK | 107 | 1 (0)| 00:00:01 |
------------------------------------------------------------------------- 统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
1 consistent gets
0 physical reads
0 redo size
420 bytes sent via SQL*Net to client
416 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed