SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。利用AutoTrace工具提供的SQL执行计划和执行状态可以为我们优化SQL的时候提供优化的依据,以及优化效果的明显的对比效果。
在SQLPLUS中输入相关AUTOTRACE命令,输入想要优化的SQL语句,即可得到SQL的执行计划和执行状态信息。
SQL> set timing on //开启时间显示
SQL> set autot traceonly //仅显示trace结果,不显示SQL执行结果
SQL> select * from ac01 where aac001=’9990000111′;
已用时间: 00: 00: 00.62
Execution Plan
———————————————————-
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (BY INDEX ROWID) OF ‘AC01′
2 1 INDEX (UNIQUE SCAN) OF ‘PK_AC01′ (UNIQUE)
Statistics
———————————————————-
0 recursive calls
0 db block gets
3 consistent gets
2 physical reads
0 redo size
1875 bytes sent via SQL*Net to client
424 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
举例:
SET AUTOT[RACE] OFF 停止AutoTrace
SET AUTOT[RACE] ON 开启AutoTrace,显示AUTOTRACE信息和SQL执行结果
SET AUTOT[RACE] TRACEONLY 开启AutoTrace,仅显示AUTOTRACE信息
SET AUTOT[RACE] ON EXPLAIN 开启AutoTrace,仅显示AUTOTRACE的EXPLAIN信息
SET AUTOT[RACE] ON STATISTICS开启AutoTrace,仅显示AUTOTRACE的STATISTICS信息
三. 执行计划的分析
Execution Plan
———————————————————-
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 TABLE ACCESS (BY INDEX ROWID) OF ‘AC01′
2 1 INDEX (UNIQUE SCAN) OF ‘PK_AC01′ (UNIQUE)
———————————————————-
这个就是SQL select * from ac01 where aac001=’9990000111′;执行计划。
执行的过程为:
1) INDEX (UNIQUE SCAN) OF ‘PK_AC01′ (UNIQUE)
2) TABLE ACCESS (BY INDEX ROWID) OF ‘AC01′
执行计划是一个树状结构,计划的执行是从叶结点开始,直到根结点。所以不同的层上,越底层的越先被执行(第一列数字中较大的);不同层上,越左边的越先被执行(第二列数字中较小的)。
通过分析这个实行计划可以知道以下几点:
a) 这是一条SELECT语句
b) 数据库系统现在使用的优化器模式为CHOOSE
c) 执行的时候先通过AC01表上的唯一索引PK_AC01查找到相应记录的ROWID,然后通过索引的ROWID直接访问AC01表,找到相应的记录。
这是一条比较简单的SQL,所以执行计划也相对来说比较简单,没有涉及到过多的连接和索引等。
- 大小: 25.8 KB
分享到:
相关推荐
通过上述知识点的详细说明,我们可以了解到Oracle SQL优化涉及多个层面的内容,从具体的优化技巧到理论概念,从基本的操作到高级的性能分析工具,每一个环节都是优化过程中不可或缺的一环。通过实例讲解,能够更加...
§14.1 Oracle优化器 170 §14.2 SQL处理体系结构 171 §14.2.1 解析程序 171 §14.2.2 优化程序 172 §14.2.3 行源程序产生器 172 §14.2.4 SQL执行 172 §14.3 EXPLAIN PLAN 172 §14.4 选择优化器路径及目标 172 ...
Oracle SQL优化是数据库性能管理中的重要环节,旨在提高查询效率、缩短响应时间和提升系统吞吐量。在深入探讨Oracle SQL优化的知识点之前,我们首先要明确其核心目标和优化的基本流程。 ### SQL优化的本质 在...
执行计划是指Oracle数据库优化器为执行特定SQL语句所选择的一系列操作步骤。通过查看执行计划,我们可以了解到SQL语句是如何被处理的,包括数据的访问方式、排序方法等。这有助于我们发现潜在的问题,并针对性地进行...
Oracle数据库的优化是确保系统高效运行的关键环节,而Oracle提供了多种工具来帮助管理员进行数据库级别的优化分析。在本文中,我们将深入探讨Oracle管理中的几个重要工具:Statspack、ASH(Automatic Workload ...
在Oracle数据库环境中,SQL性能优化是提升应用系统性能的关键环节,因为许多性能问题往往源于SQL语句执行效率低下。为了优化SQL,理解并分析执行计划是必不可少的步骤。执行计划揭示了Oracle如何处理一个SQL查询,...
虽然实际的执行计划可能会根据Oracle版本、环境等因素有所变化,但通过理解这些概念和原理,数据库管理员和开发人员可以更好地优化SQL语句和数据库性能。 需要注意的是,Oracle的源代码不公开,因此对执行计划的...
总之,Oracle的索引学习涵盖了从索引创建、选择合适的索引类型、理解数据操作对索引的影响,到使用Autotrace和DBMS_XPLAN进行性能分析等多个方面。深入理解和实践这些知识点,能帮助我们更好地管理和优化Oracle...
执行计划是由Oracle的优化器根据SQL语句的内容和数据库的统计信息自动生成的。可以通过SET AUTOTRACE ON命令或者使用EXPLAIN PLAN来查看具体的执行计划。 #### 十、如何分析执行计划 分析执行计划可以帮助我们了解...
autotrace是Oracle数据库中一个非常实用的工具,它可以生成SQL的执行计划,提供执行时间、缓冲区获取次数等统计信息,帮助优化SQL性能。尽管本文仅介绍了autotrace的基本使用,但实际它还包含更多高级功能,如...
在Oracle数据库管理中,了解查询的实际执行计划是优化SQL性能的关键步骤。这有助于识别潜在的瓶颈,例如排序操作是否在内存中完成还是需要利用磁盘空间。以下将详细阐述如何在Oracle命令行环境中查看实际的执行计划...
7. **Autotrace输出**: 在示例中,设置了AUTOTRACE后,执行一个简单的SELECT FROM DUAL语句,展示了执行计划和统计信息。执行计划显示了该语句是一个全表扫描(FULL TABLE ACCESS),而统计信息则提供了关于数据库...
以下是对给定文件内容中提到的Oracle常用技巧进行的详细解析。 首先,关于Oracle安装优化篇的技巧,这部分介绍了Oracle 10g RAC(Real Application Clusters)的安装,以及FreeNAS共享存储的搭建,这些是构建高可用...
`SQLTrace`是Oracle提供的一个强大的跟踪工具,可以记录SQL语句的执行细节,而`TKPROF`则是用来分析`SQLTrace`输出文件,将复杂的追踪信息转换为易于理解的格式,帮助用户定位查询中的性能问题。 ### 七、V$SQL视图...
### Oracle 获取执行计划全部方法详解 #### 方法一:Explain Plan for 方式 - **应用场景**:当某个 SQL 查询执行时间过长甚至无法返回结果时,这种方法尤其适用。 - **步骤**: 1. 使用 `EXPLAIN PLAN FOR` 命令...
- `SET AUTOTRACE TRACE[ONLY]` 来控制输出的内容。 - `SET AUTOTRACE EXPLAIN` 显示执行计划。 - `SET AUTOTRACE STATISTICS` 显示统计信息。 - `SHOW AUTOTRACE` 查看当前AUTOTRACE的设置。 **AUTOTRACE的使用...
### Oracle 数据库设计优化及执行过程详解 #### 一、SQL语句类型 在Oracle数据库中,SQL语句被划分为几种不同的类型,这有助于更好地理解数据管理的不同方面。 - **DDL (Data Definition Language)**: 这类语言...
Autotrace是Oracle提供的一种方便查看SQL执行计划和统计信息的功能。它可以通过命令行设置不同的模式: - `set autotrace off`: 关闭autotrace功能。 - `set autotrace on explain`: 显示执行计划。 - `set ...
- **使用autotrace**:通过设置不同的autotrace选项来控制显示的输出内容。 - `set autotrace on`:显示查询结果、执行计划和统计数据。 ```sql select * from emp; ``` - `set autotrace on statistics`:仅...