`

如何启用AutoTrace 查看SQL执行计划

阅读更多
通过以下方法可以把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 Optimizer=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>
注意:一般情况下这些权限和表都是有的
进入SQL PLUS 运行语句: set autotrace traceonly 

然后再运行要查看的SQL语句.

分享到:
评论

相关推荐

    oracle怎么查看执行计划

    不同于TKPROF需要格式化跟踪文件才能查看执行计划,AUTOTRACE可以在执行SQL语句的同时生成执行计划,无需额外步骤。同样,与EXPLAIN PLAN相比,AUTOTRACE不仅展示了执行计划,还执行了SQL语句,从而能够提供更加准确...

    oracle使用autotrace 功能

    Oracle的Autotrace是SQL*Plus中的一个强大工具,它主要用于帮助数据库管理员和开发人员分析SQL查询的执行计划,并收集执行时的性能统计数据。通过这些信息,可以有效地进行SQL查询优化,提高数据库的性能。下面是...

    显示 sql 执行效率.

    本文将详细介绍如何通过 Oracle 的 SQL*Plus 工具来查看 SQL 语句的执行效率,并手动设置 SQL 语句的执行计划显示方式。 #### SQL*Plus 自动跟踪(Auto Trace) SQL*Plus 提供了一个非常实用的功能——自动跟踪...

    ORACLE数据库查看执行计划

    本文将深入探讨如何查看执行计划,并提供优化SQL的策略。 一、执行计划的概念 执行计划是Oracle数据库为一条SQL查询选择的执行策略,它描述了数据如何被检索、处理和返回。Oracle的优化器根据表的数据量、索引情况...

    oracle 的Autotrace介绍

    Oracle Autotrace 是 Oracle 10g 中的一项新技术,用于自动跟踪 SQL 语句的执行计划并提供与该语句的处理有关的统计。Autotrace 是 SQL*Plus 的一项功能,可以用来替代 SQL Trace 使用。Autotrace 的好处是您不必...

    ORACLE命令行查看实际的执行计划

    `SET AUTOTRACE ON`是开启SQLPLUS的自动跟踪功能,它会在你执行SQL语句后显示执行计划和性能统计。在SQLPLUS中输入此命令,系统会记录接下来执行的SQL语句的详细信息,包括解析、执行和收获阶段的信息。 3. **执行...

    Oracle数据库关于SQL的执行计划

    - **设置 Auto Trace**:通过 `set autotrace traceonly explain` 开启自动跟踪功能,查看 SQL 语句的执行计划。 - **查询执行计划**:使用 `EXPLAIN PLAN FOR` 和 `SELECT * FROM table(dbms_xplan.display);` ...

    Oracle经典常用技巧荟萃

    另一个常用技巧是启用AutoTrace查看SQL执行计划,这有助于分析SQL语句的执行效率,并提供执行计划的详细信息,从而进行SQL语句的优化。 数据库连接方法的详解也是基础管理的重要组成部分。不同的应用程序和数据库...

    SQL优化器相关知识 精品资料.pptx

    SQL*PLUS的AUTOTRACE工具可以自动执行EXPLAIN PLAN语句,并显示执行计划的详细信息。AUTOTRACE工具可以帮助DBA快速了解SQL语句的执行计划,并对其进行优化。 SET AUTOTRACE命令可以用于控制AUTOTRACE工具的行为,...

    读懂oracle的执行计划

    2. **SQL*Plus AUTOTRACE**:这是一个在执行SQL语句时提供执行计划的工具。它同样要求有plan_table存在,并且实际执行SQL语句。虽然能够提供真实的执行计划,但使用除EXPLAIN PLAN之外的语句时,所生成的执行计划...

    [精华]通过分析SQL语句的执行计划优化SQL(总结)7年DBA工作经验[定义].pdf

    或者使用`SET AUTOTRACE`来开启自动跟踪,执行SQL后会显示执行计划和性能统计。 4. **分析执行计划**: 分析执行计划主要关注以下几点:访问路径(全表扫描、索引扫描等)、排序操作、连接方法(nested loop, ...

    oracle执行计划建立与阅读

    启用`SQLTRACE`后执行SQL语句,再用`TKPROF`工具对产生的跟踪文件进行格式化,以查看执行计划。 二、执行计划解读 执行计划通常由以下部分组成: 1. **操作符(Operators)**:如全表扫描(Full Table Scan)、...

    如何分析SQL语句

    本文将详细介绍如何进行SQL语句的分析,包括但不限于SQL执行计划的查看、SQL性能调优的方法以及使用Oracle提供的工具来进行SQL语句分析。 #### 一、理解SQL执行计划的重要性 SQL执行计划是数据库引擎为了执行SQL...

    SQL优化器相关知识.pptx

    - v$sql家族视图:如v$sql、v$sqlarea、v$sqltext等,它们用于查看缓存在Library Cache中的SQL执行计划和统计信息。v$sql_plan、v$sql_plan_statistics以及v$sql_plan_statistics_all提供更多详细的执行计划和统计...

    Oracle培训讲义(性能分析与调整).docx

    为了查看SQL执行计划,首先需要启用`Auto_trace`功能。以下是一些关键步骤: - **设置Auto_trace**: - 连接到Oracle数据库。 - 创建`plan_table`表和公共同义词。 - 授予权限给所有用户。 - 设置Auto_trace为...

    Oracle默认用户名与密码速查表.doc

    例如,可以使用 SET AUTOTRACE ON 命令启用 AutoTrace,然后就可以看到 SQL 语句的执行计划和执行成本信息。此外,还可以使用 SET Timing On 或者 Set Time On 命令,获取更多的执行信息。在 Toad 中,可以按下 Ctrl...

Global site tag (gtag.js) - Google Analytics