ORALCE执行计划参数介绍-1
来源:互联网 发布:数据库包括 编辑:程序博客网 时间:2024/04/29 19:26
SET AUTOTRACE OFF
此为默认值,即关闭Autotrace
SET AUTOTRACE ON EXPLAIN
只显示执行计划
SET AUTOTRACE ON STATISTICS
只显示执行的统计信息
SET AUTOTRACE ON
包含2,3两项内容
SET AUTOTRACE TRACEONLY
与ON相似,但不显示语句的执行结果
SQL> set linesize 200
SQL> set autot on;
SQL> select * from testloop where A=5;
执行计划
----------------------------------------------------------
Plan hash value: 1970519187
------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 13 | 3 (0)| 00:00:01 |
|* 1 | TABLE ACCESS FULL| TESTLOOP | 1 | 13 | 3 (0)| 00:00:01 |
------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter("A"=5)
Note
-----
- dynamic sampling used for this statement
统计信息
----------------------------------------------------------
4 recursive calls
0 db block gets
57 consistent gets
0 physical reads
172 redo size
271 bytes sent via SQL*Net to client
389 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
0 rows processed
执行计划中字段解释:
ID: 一个序号,但不是执行的先后顺序。执行的先后根据缩进来判断。
Operation: 当前操作的内容。
Rows: 当前操作的Cardinality,Oracle估计当前操作的返回结果集。
Cost(CPU):Oracle 计算出来的一个数值(代价),用于说明SQL执行的代价。
Time:Oracle 估计当前操作的时间。
谓词说明:
Access: 表示这个谓词条件的值将会影响数据的访问路劲(表还是索引)。
Filter:表示谓词条件的值不会影响数据的访问路劲,只起过滤的作用。
--在谓词中主要注意access,要考虑谓词的条件,使用的访问路径是否正确。
统计信息说明:
db block gets : 从buffer cache中读取的block的数量
consistent gets: 从buffer cache中读取的undo数据的block的数量
physical reads: 从磁盘读取的block的数量
redo size: DML生成的redo的大小
sorts (memory) :在内存执行的排序量
sorts (disk) :在磁盘上执行的排序量
Physical Reads通常是我们最关心的,如果这个值很高,说明要从磁盘请求大量的数据到Buffer Cache里,通常意味
着系统里存在大量全表扫描的SQL语句,这会影响到数据库的性能,因此尽量避免语句做全表扫描,对于全表扫描的SQL语句
,建议增 加相关的索引,优化SQL语句来解决。
(Physical Reads:实例启动后,从磁盘读到Buffer Cache数据块数量)
就是从磁盘上读取数据块的数量,其产生的主要原因是:
在数据库高速缓存中不存在这些块
全表扫描
磁盘排序
它们三者之间的关系大致可概括为:
逻辑读指的是Oracle从内存读到的数据块数量。一般来说是'consistent gets' + 'db block gets'。当在内存中找
不到所需的数据块的话就需要从磁盘中获取,于是就产生了'physical reads'。
这里会出现两种情况:
如果表没有做过分析,那么CBO可以通过动态采样的方式来获取分析数据,也可以或者正确的执行计划。
如果表分析过,但是分析信息过旧,这时CBO就不会在使用动态采样,而是使用这些旧的分析数据,从而可能导致错误的执行
计划。
在看执行计划的时候,除了看执行计划本身,还需要看谓词和提示信息。 通过整体信息来判断SQL 效率。
- ORALCE执行计划参数介绍-1
- ORALCE执行计划参数介绍-2
- oralce 执行计划
- oralce 执行计划
- ORALCE的执行计划稳定性
- ORALCE的执行计划稳定性
- oralce执行计划分析优化
- ORALCE的执行计划稳定性(zt)
- Oracle执行计划介绍
- MySQL执行计划介绍
- plsql执行计划介绍
- mysql执行计划介绍
- Oracle执行计划介绍
- 执行计划中参数解析
- Oralce-参数
- [Postgres] 如何读懂执行计划:参数解释
- 查看mysql执行计划以及各个参数
- MySQL explain执行计划参数说明
- 十道海量数据处理面试题与十个方法大总结
- 采样率转换
- 诸行无常 是生灭法 生灭灭已 寂灭为乐
- java遍历Map时remove删除元素
- PS高手
- ORALCE执行计划参数介绍-1
- xcode解决问题dyld: Library not loaded(AdSupport.framework)
- CXF生成客户端/服务端命令 及 Pl/SQL常用快捷键
- wust 1061 链表的合并
- java反射
- js中获取 table节点各tr及td的内容方法
- 机架感知(Rack Awareness)机制浅述
- COJ 1236 STL中的map每日二水
- stm32端口“重映射” &&串口学习