oracle autotrace使用
Oracle 使用
2023-09-11 14:20:17 时间
通过以下方法可以把Autotrace的权限授予Everyone,
如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。
D:\oracle\ora92>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 3 15:16:03 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys as sysdba
请输入口令:
已连接。
SQL> @?\rdbms\admin\utlxplan
表已创建。
SQL> create public synonym plan_table for plan_table;
同义词已创建。
SQL> grant all on plan_table to public ;
授权成功。
SQL> @?\sqlplus\admin\plustrce
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR 位于第 1 行:
ORA-01919: 角色’PLUSTRACE’不存在
SQL> create role plustrace;
角色已创建
SQL>
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>
SQL> set echo off
DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public
这样所有用户都将拥有plustrace角色的权限.
SQL> grant plustrace to public ;
授权成功。
然后我们就可以使用AutoTrace的功能了.
SQL> connect eqsp/eqsp
已连接。
SQL> set autotrace on
SQL> set timing on
SQL>
关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
SQL> set autotrace traceonly
SQL> select table_name from user_tables;
已选择98行。
已用时间: 00: 00: 00.04
execution Plan
----------------------------------------------------------
0 select STATEMENT ptimizer=CHOOSE
1 0 NESTED LOOPS
2 1 NESTED LOOPS (OUTER)
3 2 NESTED LOOPS (OUTER)
4 3 NESTED LOOPS (OUTER)
5 4 NESTED LOOPS (OUTER)
6 5 NESTED LOOPS
7 6 TABLE ACCESS (BY INDEX ROWID) OF ’OBJ$’
8 7 INDEX (RANGE SCAN) OF ’I_OBJ2’ (UNIQUE)
9 6 TABLE ACCESS (CLUSTER) OF ’TAB$’
10 9 INDEX (UNIQUE SCAN) OF ’I_OBJ#’ (NON-UNIQUE)
11 5 TABLE ACCESS (BY INDEX ROWID) OF ’OBJ$’
12 11 INDEX (UNIQUE SCAN) OF ’I_OBJ1’ (UNIQUE)
13 4 INDEX (UNIQUE SCAN) OF ’I_OBJ1’ (UNIQUE)
14 3 TABLE ACCESS (CLUSTER) OF ’USER$’
15 14 INDEX (UNIQUE SCAN) OF ’I_USER#’ (NON-UNIQUE)
16 2 TABLE ACCESS (CLUSTER) OF ’SEG$’
17 16 INDEX (UNIQUE SCAN) OF ’I_FILE#_BLOCK#’ (NON-UNIQUE)
18 1 TABLE ACCESS (CLUSTER) OF ’TS$’
19 18 INDEX (UNIQUE SCAN) OF ’I_TS#’ (NON-UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1389 consistent gets
0 physical reads
0 redo size
2528 bytes sent via SQL*Net to client
569 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
98 rows processed
SQL>
补充一下在10g中的用法
在10g中带有plan_table这张表,但是将名字改为了plan_table$
只需$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色
grant plustrace to public
设置Autotrace的命令。
SET AUTOTRACE OFF
此为默认值,即关闭Autotrace
SET AUTOTRACE ON
产生结果集和解释计划并列出统计
SET AUTOTRACE ON EXPLAIN
显示结果集和解释计划不显示统计
4
SETAUTOTRACE TRACEONLY
显示解释计划和统计,尽管执行该语句但您将看不到结果集
SET AUTOTRACE
TRACEONLY STATISTICS
只显示统计
Eg:SET AUTOTRACE ON, set timing on, alter session set time_statistics=true;
Autotrace执行计划的各列的涵义
ID_PLUS_EXP:每一步骤的行号
PARENT_ID_PLUS_EXP:每一步的Parent的级别号
PLAN_PLUS_EXP:实际的每步
OBJECT_NODE_PLUS_EXP:Dblink或并行查询时才会用到
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)
在磁盘上执行的排序量
如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。
D:\oracle\ora92>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期二 6月 3 15:16:03 2003
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect sys as sysdba
请输入口令:
已连接。
SQL> @?\rdbms\admin\utlxplan
表已创建。
SQL> create public synonym plan_table for plan_table;
同义词已创建。
SQL> grant all on plan_table to public ;
授权成功。
SQL> @?\sqlplus\admin\plustrce
SQL>
SQL> drop role plustrace;
drop role plustrace
*
ERROR 位于第 1 行:
ORA-01919: 角色’PLUSTRACE’不存在
SQL> create role plustrace;
角色已创建
SQL>
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>
SQL> set echo off
DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public
这样所有用户都将拥有plustrace角色的权限.
SQL> grant plustrace to public ;
授权成功。
然后我们就可以使用AutoTrace的功能了.
SQL> connect eqsp/eqsp
已连接。
SQL> set autotrace on
SQL> set timing on
SQL>
关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
SQL> set autotrace traceonly
SQL> select table_name from user_tables;
已选择98行。
已用时间: 00: 00: 00.04
execution Plan
----------------------------------------------------------
0 select STATEMENT ptimizer=CHOOSE
1 0 NESTED LOOPS
2 1 NESTED LOOPS (OUTER)
3 2 NESTED LOOPS (OUTER)
4 3 NESTED LOOPS (OUTER)
5 4 NESTED LOOPS (OUTER)
6 5 NESTED LOOPS
7 6 TABLE ACCESS (BY INDEX ROWID) OF ’OBJ$’
8 7 INDEX (RANGE SCAN) OF ’I_OBJ2’ (UNIQUE)
9 6 TABLE ACCESS (CLUSTER) OF ’TAB$’
10 9 INDEX (UNIQUE SCAN) OF ’I_OBJ#’ (NON-UNIQUE)
11 5 TABLE ACCESS (BY INDEX ROWID) OF ’OBJ$’
12 11 INDEX (UNIQUE SCAN) OF ’I_OBJ1’ (UNIQUE)
13 4 INDEX (UNIQUE SCAN) OF ’I_OBJ1’ (UNIQUE)
14 3 TABLE ACCESS (CLUSTER) OF ’USER$’
15 14 INDEX (UNIQUE SCAN) OF ’I_USER#’ (NON-UNIQUE)
16 2 TABLE ACCESS (CLUSTER) OF ’SEG$’
17 16 INDEX (UNIQUE SCAN) OF ’I_FILE#_BLOCK#’ (NON-UNIQUE)
18 1 TABLE ACCESS (CLUSTER) OF ’TS$’
19 18 INDEX (UNIQUE SCAN) OF ’I_TS#’ (NON-UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
1389 consistent gets
0 physical reads
0 redo size
2528 bytes sent via SQL*Net to client
569 bytes received via SQL*Net from client
8 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
98 rows processed
SQL>
补充一下在10g中的用法
在10g中带有plan_table这张表,但是将名字改为了plan_table$
只需$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色
grant plustrace to public
设置Autotrace的命令。
SET AUTOTRACE OFF
此为默认值,即关闭Autotrace
SET AUTOTRACE ON
产生结果集和解释计划并列出统计
SET AUTOTRACE ON EXPLAIN
显示结果集和解释计划不显示统计
4
SETAUTOTRACE TRACEONLY
显示解释计划和统计,尽管执行该语句但您将看不到结果集
SET AUTOTRACE
TRACEONLY STATISTICS
只显示统计
Eg:SET AUTOTRACE ON, set timing on, alter session set time_statistics=true;
Autotrace执行计划的各列的涵义
ID_PLUS_EXP:每一步骤的行号
PARENT_ID_PLUS_EXP:每一步的Parent的级别号
PLAN_PLUS_EXP:实际的每步
OBJECT_NODE_PLUS_EXP:Dblink或并行查询时才会用到
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)
在磁盘上执行的排序量
相关文章
- Oracle-查看oracle是否有表被锁
- 【oracle 】如何估算即将创建的索引大小
- Oracle语句优化之一
- phalcon: 解决php7/phalcon3.2以上版本,不支持oracle数据库的方法
- 如何监控ORACLE索引使用与否
- oracle手动启动服务
- 项目中使用oracle序列
- 使用Perl管理Oracle数据库
- oracle数据泵EXPDP和IMPDP使用说明
- 使用Navicat for Oracle新建表空间、用户及权限赋予
- 判断oracle是否是rac实例
- 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
- Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
- 在Oracle 中使用CONNECT BY PRIOR START WITH 语句详解
- Oracle to MySQL Goldengate实现增量迁移
- Oracle 11g 在使用时应该启动哪些服务?
- 【项目实战】如何在关系型数据库(Oracle、MySQL)中创建定时任务
- C#中使用Oracle存储过程返回结果集
- 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序
- 怎样利用JDBC启动Oracle 自己主动追踪(auto trace)
- Oracle 约束的重大作用
- Oracle 技能强化 Part 6 使用数字
- Oracle 12c中SQLPlus操作使用(包含实验二ORACLE SQL*PLUS环境与查询的详细操作解释)
- Oracle的学习心得和知识总结(十八)|Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成
- 05、Oracle使用分组函数汇总数据