统计信息 --------------------------------------------------------- 299 recursive calls 0 db block gets 2359 consistent gets 0 physical reads 0 redo size 410 bytes sent via SQL*Net to client 385 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 5 sorts (memory) 0 sorts (disk) 1 rows processed
这些数据就是这条SQL语句的执行状态。下面分别说一下各个数据项的含义:
recursive calls
递归调用-执行SQL的时候的产生的递归调用的数量,这个参数和访问数据字典的次数有很大的关系。一般来说,这个参数值不会很大。
db block gets
DB块取-在发生INSERT,DELETE,UPDATE,SELECT FOR UPDATE的时候,数据库缓冲区中的数据库块的个数。在SELECT语句中一般为0。
db block gets + consistent gets = logical io (as opposed to physical io).
consistent gets
一致性读-除了SELECT FOR UPDATE的时候,从数据库缓冲区中读取的数据块的个数
db block gets + consistent gets = logical io (as opposed to physical io)
physical reads
物理读-physical reads = physical io (as opposed to logical io)
redo size
重做日志大小-执行SQL的过程中,产生的重做日志的大小
bytes sent via SQL*Net to client
通过sql*net发送给客户端的字节数
bytes received via SQL*Net from client
通过sql*net接受客户端的字节数
sql*net roundtrips to/from client
See how setting the arraysize affects SQL*Net roundtrips to/from client.
sorts(memory)
在内存中发生的排序
sorts(disk)
不能在内存中发生的排序,需要硬盘来协助
rows processed
结果的记录数
用AutoTrace进行优化的注意事项
1. 可以通过设置timing来得到执行SQL所用的时间,但不能仅把这个时间来当作SQL执行效率的唯一量度。这个时间会包括进行AUTOTRACE的一些时间消耗,所以这个时间并不仅仅是SQL执行的时间。这个时间会与SQL执行时间有一定的误差,而在SQL比较简单的时候尤为明显。
2. 判断SQL效率高低应该通过执行SQL执行状态里面的逻辑读的数量
相关推荐
#### 三、执行计划结果信息说明 执行计划示例可能会输出以下信息: ``` PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------- Plan hash value: 1388734953 ----...
执行计划是Oracle优化器根据统计信息和优化算法生成的用于执行SQL语句的具体步骤说明,它决定了SQL语句如何访问数据库中的数据,如何执行join操作,以及如何返回查询结果。 ### 执行计划的重要性 执行计划贯穿于...
下面通过一个具体的例子来说明不同的执行计划: ```sql SQL> set autotrace traceonly; 执行计划一: SQL> select count(*) from t; Execution Plan --------------------- 0 SELECT STATEMENT Optimizer=CHOOSE ...
### Oracle Explain Plan 总结 #### 一、Oracle 执行计划的重要性 在Oracle数据库中,为了提高查询效率和...无论是使用`EXPLAIN PLAN`还是`AUTOTRACE`,都能够帮助我们更好地理解SQL语句的执行流程,并据此进行优化。
此外,`AUTOTRACE`还可以与其他命令结合使用,例如`SET TIMING ON`来显示SQL语句的执行时间,或者`SET AUTOTRACE ON EXPLAIN`来仅显示执行计划而不会执行语句。 总的来说,`EXPLAIN PLAN`和`AUTOTRACE`是Oracle...
在SQL*Plus中打开autotrace后,当执行DML操作(insert、update、delete、select和merge)时,SQL*Plus将完成以下操作: 1. 如果第二个会话不存在,则使用当前连接创建一个新的会话。 2. SQL*Plus要求产生的新会话...
set autotrace traceonly /*traceonly 可以不显示执行结果*/ SQL> / Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 NESTED LOOPS 2 1...
Oracle性能调优主要包括查询处理、执行计划分析(Explain plan)和自动追踪(Autotrace)等技术,这些都是提升数据库性能的关键手段。 查询处理是数据库系统的核心功能之一,涉及如何高效地执行SQL查询。在查询处理...
Autotrace可以显示SQL语句的执行计划和统计信息,帮助开发者理解SQL执行的效率。通过分析这些信息,可以确定是CPU、I/O还是其他资源导致了性能瓶颈。 5. SQL语句的优化技巧:文档中出现了一些SQL语句的示例,例如...
如果查询执行计划中包含“INDEX”关键字,说明查询使用了索引。 7. 结合AUTOTRACE创建并验证函数索引 函数索引是在列上基于表达式创建的索引,用于加速基于特定函数或操作的查询。AUTOTRACE可以用来验证在创建函数...
答案是执行计划是数据库内部的执行步骤,可以通过 set autotrace on、select * from table、alter session set event '10046 trace name context forever,level 12 ';SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION=(SID...
在不借助第三方工具的情况下,可以使用SET AUTOTRACE ON来跟踪SQL语句的执行,或者使用EXPLAIN PLAN FOR来获取SQL的执行计划。此外,DBMS_XPLAN.DISPLAY函数可以展示更详细的执行计划信息。 为了定位资源消耗大的...
文件还提供了SQL脚本示例,说明了如何通过查询v$session、v$process和v$sqlarea视图来定位消耗资源多的SQL语句,并且给出了具体的SQL查询脚本用于执行这一过程。 最后,文件中提到了一些实用的SQL脚本技巧,例如...
根据提供的文件信息,这里将对Oracle常用命令进行详细的解析与说明。从标题“Oracle 常用命令大全”以及描述“Oracle 常用命令大全”来看,文章旨在全面介绍Oracle数据库中的各种实用命令。接下来,我们将逐一分析并...
使用AUTOTRACE或EXPLAIN PLAN可以查看执行计划,通过对比不同执行计划,选择最优策略。 21.3.2 优化子查询: 子查询虽然功能强大,但可能导致性能问题,尤其是数据量大时。考虑使用连接(JOINs)替代子查询,或者...
第二种是在SQLPLUS中使用`SET AUTOTRACE ON`,这将显示执行计划和统计信息。 3. **CBO(Cost-Based Optimizer)与 RBO(Rule-Based Optimizer)**:CBO是基于成本的优化器,它根据表的统计信息选择成本最低的执行...
- `SET AUTOTRACE TRACEONLY`则仅显示执行计划,不执行实际查询。 4. **查询优化与索引使用**: - **索引范围扫描**:当查询条件包含范围操作符(如`>`、`、`>=`、`)时,数据库可能会使用索引范围扫描。 - **IN...
下面将详细说明标题和描述中提及的知识点: 1. SQL性能优化专题 - 这一部分是整个分享的主题,强调了性能优化在SQL编程中的重要性。性能优化是保证数据库能够高效运行的关键步骤,尤其是在大型数据库系统中,它...
从给出的示例中可以看出,在Oracle 10G版本中,通过autotrace功能分析执行计划,两个where条件的顺序不同,但是执行计划结果却是一样的。这说明在这个特定案例中,Oracle的优化器已经足够智能,能够识别出逻辑上等价...