Oracle AUTOTRACE故障处理:SP2-0618、SP2-0611


Oracle的AUTOTRACE命令简介

  • Oracle提供了一个称为EXPLAIN PLAN的工具,使用EXPLAIN PLAN命令,允许生成执行计划输出。
  • SQL*PLUS提供了AUTOTRACE工具,允许查看已执行查询的执行计划,而不必使用EXPLAIN PLAN命令。

一、故障发生:SP2-0618、SP2-0611

开启AUTOTRACE功能时报错。
在SQL命令行执行

SET AUTOTRACE ON

脚本时报错:
在这里插入图片描述

二、解决方法

1.1、用sqlplus以sysdba身份登录到Oracle数据库

以管理员权限打开命令窗口,输入:

sqlplus / as sysdba

以sysdba身份登录到数据库。
在这里插入图片描述

1.2、执行$ORACLE_HOME/sqlplus/admin/plustrce.sql脚本来生成PLUSTRACE角色

因为PLUSTRACE角色不是预先定义好的,所以需要执行$ORACLE_HOME/sqlplus/admin/plustrce.sql脚本来生成PLUSTRACE角色。

@D:\oracle_database\11.2.0\dbhome_1\sqlplus\admin\plustrce.sql

上面的脚本修改成自己的目录。在这里插入图片描述

1.3、将PLUSTRACE角色赋予给你要使用AUTOTRACE命令的用户。

grant plustrace to log; -- log为要使用SET AUTOTRACE ON的用户

在这里插入图片描述

1.4、cmd命令行的SQL窗口下连接到指定的用户

conn log/1  -- conn 用户名/密码

在这里插入图片描述

1.5、开启AUTOTRACE功能

SET AUTOTRACE ON

在这里插入图片描述
开启成功。

1.5、查看执行计划

在这里插入图片描述

三、Autotrace命令详解

3.1、设置Autotrace的命令

序号 命令 解释
1 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace
2 SET AUTOTRACE ON 产生结果集和解释计划并列出统计
3 SET AUTOTRACE ON EXPLAIN 显示结果集和解释计划不显示统计
4 SETAUTOTRACE TRACEONLY 显示解释计划和统计,尽管执行该语句但您将看不到结果集
5 SET AUTOTRACE TRACEONLY STATISTICS 只显示统计
Eg:
SET AUTOTRACE ON, set timing on, alter session set time_statistics=true;

3.2、Autotrace执行计划的各列的涵义

序号 列名 解释
1 ID_PLUS_EXP 每一步骤的行号
2 PARENT_ID_PLUS_EXP 每一步的Parent的级别号
3 PLAN_PLUS_EXP 实际的每步
4 OBJECT_NODE_PLUS_EXP Dblink或并行查询时才会用到

3.3、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) 在内存执行的排序量
6 sorts (disk) 在磁盘上执行的排序量

猜你喜欢

转载自blog.csdn.net/tttzzzqqq2018/article/details/132332154
今日推荐