`

【转载】在sqlplus中执行set autotrace on 报cannot set autotrace 错误解决方法

 
阅读更多

今天在本器中想分析下执行计划,但是在sqlplus中输入set autotrace on 报cannot set autotrace 错误

解决方法如下:

首先必须采用用Oracle的sqlplus登陆sys账号

sqlplus " sys/sys@XXX as sysdba "

然后执行如下脚本:

@?\sqlplus\admin\plustrce.sql (创建plustrace角色并授权)   

@?\rdbms\admin\utlxplan.sql (创建执行计划的表)

执行过程如下

 

SQL> @?\sqlplus\admin\plustrce.sql
SQL>
SQL> drop role 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_$mystat to plustrace;

授权成功。

SQL> grant plustrace to dba with admin option;

授权成功。

SQL>
SQL> set echo off
SQL> @?\rdbms\admin\utlxplan.sql

表已创建。

SQL>

 

然后执行: 

grant all on plan_table to public; (也可以授权给某一个单独的用户)

grant plustrace to public 

  

然后就可以进行 set autotrace了  但是只能在sqlplus中运行相关命令,在pl/sql developer等工具中仍然报错

 

 

关于Autotrace几个常用选项的说明:

SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式

SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告

SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息

SET AUTOTRACE ON ----------------- 包含执行计划和统计信息

SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出

 

 

Autotrace执行计划的各列的涵义

 

序号

列名

解释

1

ID_PLUS_EXP

每一步骤的行号

2

PARENT_ID_PLUS_EXP

每一步的Parent的级别号

3

PLAN_PLUS_EXP

实际的每步

4

OBJECT_NODE_PLUS_EXP

Dblink或并行查询时才会用到

 

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)

在磁盘上执行的排序量

分享到:
评论

相关推荐

    Oracle性能分析——使用set_autotrace_on和set_timing_on来分析select语句的性能.doc

    但是,在 sqlplus 工具下,使用 set autotrace on 和 set timing on 的方式是比较简便的。 使用 set autotrace on 和 set timing on 可以得到 SQL 语句的实际运行时间和查询计划。首先,在 sqlplus 工具下,输入 ...

    sqlplus中批量执行sql文件

    `语句以便在执行时显示错误信息。 #### 二、执行步骤 1. **启动SQLPlus**:打开CMD命令提示符窗口,输入以下命令来启动SQLPlus并连接到指定的数据库实例: ```sql sqlplus username/password@database ``` ...

    oracle使用autotrace 功能

    只需在执行SQL语句之前输入`set autotrace on`命令。这将自动追踪接下来执行的SQL语句,展示执行计划和性能统计信息。 5. **解决权限问题** 如果遇到“ORA-01039: 视图基本对象的权限不足”的错误,可能是因为用户...

    sqlplus中常用的set用法

    在SQL*Plus环境中,`set`命令是一种非常重要的工具,用于调整用户会话的各种设置,以优化输出格式、控制查询行为或改善交互式操作的体验。以下是对标题和描述中涉及的`set`命令常用用法的详细说明: 1. **设置页面...

    解决linux环境下sqlplus乱码的方法

    在Linux环境下,SQL*Plus是Oracle数据库管理系统的命令行工具,用于执行SQL语句和PL/SQL块。然而,有时用户可能会遇到字符编码问题,导致输出显示为乱码。这通常与系统环境变量、终端设置或者数据库自身的字符集不...

    在SQLPlus中改变字体和字符集

    摘要:本文主要介绍了在 SQLPlus 中改变字体和字符集的方法,对于 Oracle 数据库管理员来说,这是一项非常重要的技能。通过对注册表的修改,可以改变 SQLPlus 中的字体大小和字符集,从而提高工作效率。 知识点一:...

    获取SQL语句的执行计划v1

    ### 获取SQL语句的执行计划 在Oracle数据库中,了解SQL语句的执行...以上方法涵盖了在Oracle数据库中获取SQL语句执行计划的主要途径。根据实际需求选择合适的方法,可以帮助开发者和DBA更好地理解并优化SQL查询性能。

    oracle sqlplus测试出现错误的解决方法

    ### Oracle SQLPlus 测试出现错误的解决方法 在使用Oracle SQLPlus工具时,尤其是在Windows 7环境下通过命令提示符(CMD)启动SQLPlus时,可能会遇到一个常见的错误:SP2-1503: 无法初始化 Oracle 调用界面。这个...

    SQLPlus中的复制和粘贴技巧

    通过熟练运用这些技巧,你将在SQLPlus环境中更加游刃有余,提高你的工作效率,减少手动输入的错误,并更好地管理你的SQL查询和脚本。记住,实践是提高技能的关键,不断尝试和熟悉这些方法,你将成为SQLPlus的专家。

    SQLPLUS命令查询文档

    SQLPLUS是Oracle数据库系统中的一个命令行工具,用于执行SQL语句和PL/SQL块,进行数据查询、数据库管理以及数据库脚本的编写。这个"SQLPLUS命令查询文档"很可能是一个详细介绍了SQLPLUS使用方法的CHM(Compiled ...

    sqlplus中文插件

    在实际应用中,熟练使用SQLPlus不仅可以进行数据查询,还可以创建和修改数据库对象,执行数据库备份和恢复,以及进行性能优化等高级任务。因此,熟悉SQLPlus及相关的中文插件对于从事Oracle数据库管理工作的专业人士...

    sqlplus日期格式和中文乱码解决文.pdf

    SQLplus 日期格式和中文乱码解决方法 在数据库中查询数据时,我们经常会遇到日期时间格式的问题,例如显示语言、显示格式等。这可能是因为数据库中存储的格式是YYYY-MM-DD HH24:MI:SS,但是查询出来的却是22-1月-10...

    Java调用sqlplus执行定制的sql脚本

    在IT行业中,数据库管理和自动化是两个非常重要的领域。当我们需要执行一系列定制的SQL脚本来完成特定任务时,例如数据迁移、初始化或者批量更新,手动操作可能会变得繁琐且易出错。这时,我们可以借助编程语言来...

    解决oracle下非oracle用户下执行sqlplus

    通常linux下用安装oracle后,只有切换至oracle用户下方可执行相关的数据库的sqlplus及imp\exp相关命令的操作,经过这里的此配置后方可解决此问题,所有用户下均可以执行上述相关操作

    SQLPLUS在Bash_shell的使用

    在Bash Shell脚本中,我们可以利用SQLPLUS的这些特性来执行一系列数据库操作。例如,创建一个Shell脚本,其中包含SQLPLUS命令行,可以实现数据备份、查询、更新等任务。使用`system()`或`echo`命令将SQLPLUS命令传递...

    解决sqlplus 删除键,方向键扥乱码

    在SQL*Plus中,用户可能会遇到输入删除键(Delete)或方向键时出现乱码的问题。这通常是由于终端编码设置不正确或者SQL*Plus的NLS设置与系统环境不匹配导致的。以下是一些详细的知识点,帮助你解决这个问题: 1. **...

    SQLPLUS命令.rar

    2. 退出SQLPLUS:在SQLPLUS会话中,输入`EXIT`或`QUIT`命令即可退出。 二、SQLPLUS基本命令 1. `HELP`:显示SQLPLUS的帮助信息,如`HELP command`显示特定命令的帮助。 2. `\h`:同`HELP`,用于查看帮助。 3. `\p`...

    ORA-12737 ZHS16GBK 解决方案 oci sqlplus

    在Oracle数据库环境中,当用户尝试使用oci(Oracle Call Interface)或者sqlplus进行连接时,可能会遇到"ORA-12737...务必在执行任何更改之前备份重要数据,并在测试环境中验证解决方案,以避免生产环境中的潜在问题。

    sqlplus 批处理

    在SQLPLUS中,这意味着可以将多条SQL语句写入一个文本文件,然后通过SQLPLUS命令行一次性执行这个文件,从而减少重复输入和提高工作效率。 3. 创建批处理脚本: 首先,我们需要创建一个包含SQL语句的文本文件,例如...

Global site tag (gtag.js) - Google Analytics