今天在本器中想分析下执行计划,但是在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) |
在磁盘上执行的排序量 |
相关推荐
但是,在 sqlplus 工具下,使用 set autotrace on 和 set timing on 的方式是比较简便的。 使用 set autotrace on 和 set timing on 可以得到 SQL 语句的实际运行时间和查询计划。首先,在 sqlplus 工具下,输入 ...
`语句以便在执行时显示错误信息。 #### 二、执行步骤 1. **启动SQLPlus**:打开CMD命令提示符窗口,输入以下命令来启动SQLPlus并连接到指定的数据库实例: ```sql sqlplus username/password@database ``` ...
只需在执行SQL语句之前输入`set autotrace on`命令。这将自动追踪接下来执行的SQL语句,展示执行计划和性能统计信息。 5. **解决权限问题** 如果遇到“ORA-01039: 视图基本对象的权限不足”的错误,可能是因为用户...
在SQL*Plus环境中,`set`命令是一种非常重要的工具,用于调整用户会话的各种设置,以优化输出格式、控制查询行为或改善交互式操作的体验。以下是对标题和描述中涉及的`set`命令常用用法的详细说明: 1. **设置页面...
在Linux环境下,SQL*Plus是Oracle数据库管理系统的命令行工具,用于执行SQL语句和PL/SQL块。然而,有时用户可能会遇到字符编码问题,导致输出显示为乱码。这通常与系统环境变量、终端设置或者数据库自身的字符集不...
摘要:本文主要介绍了在 SQLPlus 中改变字体和字符集的方法,对于 Oracle 数据库管理员来说,这是一项非常重要的技能。通过对注册表的修改,可以改变 SQLPlus 中的字体大小和字符集,从而提高工作效率。 知识点一:...
### 获取SQL语句的执行计划 在Oracle数据库中,了解SQL语句的执行...以上方法涵盖了在Oracle数据库中获取SQL语句执行计划的主要途径。根据实际需求选择合适的方法,可以帮助开发者和DBA更好地理解并优化SQL查询性能。
### Oracle SQLPlus 测试出现错误的解决方法 在使用Oracle SQLPlus工具时,尤其是在Windows 7环境下通过命令提示符(CMD)启动SQLPlus时,可能会遇到一个常见的错误:SP2-1503: 无法初始化 Oracle 调用界面。这个...
通过熟练运用这些技巧,你将在SQLPlus环境中更加游刃有余,提高你的工作效率,减少手动输入的错误,并更好地管理你的SQL查询和脚本。记住,实践是提高技能的关键,不断尝试和熟悉这些方法,你将成为SQLPlus的专家。
SQLPLUS是Oracle数据库系统中的一个命令行工具,用于执行SQL语句和PL/SQL块,进行数据查询、数据库管理以及数据库脚本的编写。这个"SQLPLUS命令查询文档"很可能是一个详细介绍了SQLPLUS使用方法的CHM(Compiled ...
在实际应用中,熟练使用SQLPlus不仅可以进行数据查询,还可以创建和修改数据库对象,执行数据库备份和恢复,以及进行性能优化等高级任务。因此,熟悉SQLPlus及相关的中文插件对于从事Oracle数据库管理工作的专业人士...
SQLplus 日期格式和中文乱码解决方法 在数据库中查询数据时,我们经常会遇到日期时间格式的问题,例如显示语言、显示格式等。这可能是因为数据库中存储的格式是YYYY-MM-DD HH24:MI:SS,但是查询出来的却是22-1月-10...
在IT行业中,数据库管理和自动化是两个非常重要的领域。当我们需要执行一系列定制的SQL脚本来完成特定任务时,例如数据迁移、初始化或者批量更新,手动操作可能会变得繁琐且易出错。这时,我们可以借助编程语言来...
通常linux下用安装oracle后,只有切换至oracle用户下方可执行相关的数据库的sqlplus及imp\exp相关命令的操作,经过这里的此配置后方可解决此问题,所有用户下均可以执行上述相关操作
在Bash Shell脚本中,我们可以利用SQLPLUS的这些特性来执行一系列数据库操作。例如,创建一个Shell脚本,其中包含SQLPLUS命令行,可以实现数据备份、查询、更新等任务。使用`system()`或`echo`命令将SQLPLUS命令传递...
在SQL*Plus中,用户可能会遇到输入删除键(Delete)或方向键时出现乱码的问题。这通常是由于终端编码设置不正确或者SQL*Plus的NLS设置与系统环境不匹配导致的。以下是一些详细的知识点,帮助你解决这个问题: 1. **...
2. 退出SQLPLUS:在SQLPLUS会话中,输入`EXIT`或`QUIT`命令即可退出。 二、SQLPLUS基本命令 1. `HELP`:显示SQLPLUS的帮助信息,如`HELP command`显示特定命令的帮助。 2. `\h`:同`HELP`,用于查看帮助。 3. `\p`...
在Oracle数据库环境中,当用户尝试使用oci(Oracle Call Interface)或者sqlplus进行连接时,可能会遇到"ORA-12737...务必在执行任何更改之前备份重要数据,并在测试环境中验证解决方案,以避免生产环境中的潜在问题。
在SQLPLUS中,这意味着可以将多条SQL语句写入一个文本文件,然后通过SQLPLUS命令行一次性执行这个文件,从而减少重复输入和提高工作效率。 3. 创建批处理脚本: 首先,我们需要创建一个包含SQL语句的文本文件,例如...