出自eygle http://www.eygle.com/faq/AutoTrace.htm
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>
分享到:
相关推荐
但是,在 sqlplus 工具下,使用 set autotrace on 和 set timing on 的方式是比较简便的。 使用 set autotrace on 和 set timing on 可以得到 SQL 语句的实际运行时间和查询计划。首先,在 sqlplus 工具下,输入 ...
Oracle的Autotrace是SQL*Plus中的一个强大工具,它主要用于帮助数据库管理员和开发人员分析SQL查询的执行计划,并收集执行时的性能统计数据。通过这些信息,可以有效地进行SQL查询优化,提高数据库的性能。下面是...
1. **Autotrace设置**:通过`set autotrace on`或`set autotracetraceonly explain`启用自动追踪功能,以获取SQL语句的执行计划。这有助于理解查询的执行路径和优化策略。 2. **Timing设置**:使用`set timing on`...
- 使用`EXPLAIN PLAN`或`SET AUTOTRACE ON`来分析SQL语句的执行计划,评估性能。 使用SQL*Plus时,用户不仅可以执行单个SQL语句,还可以编写批处理脚本,通过循环、条件判断等控制结构实现自动化任务。此外,SQL*...
- **关闭autotrace**:可以通过命令`set autotrace off`来关闭autotrace功能。 #### 方法2:使用EXPLAIN PLAN FOR / dbms_xplan.display **生成执行计划** 此方法无需进行任何配置。下面是使用该方法生成和查看...
【Oracle数据库基础及应用第05章SQLPlus命令】 Oracle数据库是世界上最广泛使用的数据库管理系统之一,而SQL*Plus是Oracle提供的一种命令行工具,用于执行SQL语句和PL/SQL块,实现对数据库的访问、查询、更新和管理...
首先,我们关注的是sqlplus,它是Oracle提供的一个命令行工具,用于与数据库交互。sqlplus不仅适用于初学者,也深受经验丰富的DBA喜爱。通过sqlplus,用户可以执行SQL查询、DML语句、DDL语句以及PL/SQL块。以下是...
/sqlplus/admin/plustrce.sql 命令,grant plustrace to public。 使用 AutoTrace 工具可以帮助用户了解 SQL 语句的执行计划和执行成本,可以提高 SQL 语句的执行效率。例如,可以使用 SET AUTOTRACE ON 命令启用 ...
`SET AUTOTRACE ON`是开启SQLPLUS的自动跟踪功能,它会在你执行SQL语句后显示执行计划和性能统计。在SQLPLUS中输入此命令,系统会记录接下来执行的SQL语句的详细信息,包括解析、执行和收获阶段的信息。 3. **执行...
set autotrace traceonly /*traceonly 可以不显示执行结果*/ SQL> / Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 NESTED LOOPS 2 1...
### Oracle Explain Plan 总结 #### 一、Oracle 执行计划的重要性 在Oracle数据库中,为了提高查询效率和...无论是使用`EXPLAIN PLAN`还是`AUTOTRACE`,都能够帮助我们更好地理解SQL语句的执行流程,并据此进行优化。
发现这些问题的方法多样,可以通过查询`v$session_wait`视图来查看等待事件,使用SQLPLUS的AUTOTRACE功能观察执行计划,或者在TOAD等数据库管理工具中直接查看执行计划。此外,还可以通过STATSPACK分析资源消耗,...
- `set autotrace off`: 关闭autotrace功能。 - `set autotrace on explain`: 显示执行计划。 - `set autotrace on statistics`: 显示执行的统计信息。 - `set autotrace on`: 同时显示执行计划和统计信息。 - `set ...
2. 查看 SQL 执行计划:使用 SQLplus 的 autotrace 选项和 utlxplan.sql script 创建 plan_table 表 3. 使用 Cost-Based Optimizer (CBO):设置optimizer_mode参数,CBO 需要统计信息,RBO 会选择不合适的索引 4. ...
在 SQLPLUS 中,可以使用 SET AUTOTRACE ON 命令来查看执行计划。当我们执行一个 SQL 语句时,SQLPLUS 将在查询结果后显示执行计划。例如,执行以下语句: ```sql SET AUTOTRACE ON SELECT * FROM hr.employees; ``...
2. 查看 SQL 的执行计划:使用 sqlplus set autotrace ... utlxplan.sql 创建 plan_table 表 3. 使用 CBO(Cost-Based Optimizer):在初始化参数中设置 optimizer_mode=choose/all_rows/first_row 二、SQL 优化 4...
\sqlplus\admin\plustrce SQL> create role plustrace; 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> ...