oracle 执行计划

 

用pl sql 看执行计划

按F5显示执行计划,或者按菜单 工具--解释计划。

后面显示的字段可以点小扳手设置设置,默认的事耗费、基数、字节。

一般耗费越低越好。

一般都用索引,没有全表扫描较好。

 

sqlDeveloper查看执行计划

按F10 或 快捷图标(第四个)

object_name:表名,options:选择(全表扫描、用索引),cost:耗费

 

sqlplus查看执行计划

xshell
sqlplus
sql>set autotrace on
select * from RESOURSE t where id = '402881ea3fe04843013fe10417f3022a'


Statistics
----------------------------------------------------------
   8  recursive calls
   0  db block gets
  83  consistent gets
   0  physical reads
   0  redo size
   1401  bytes sent via SQL*Net to client
   520  bytes received via SQL*Net from client
   2  SQL*Net roundtrips to/from client
   0  sorts (memory)
   0  sorts (disk)
   3  rows processed

 

    设置autotrace

序号

命令

解释

1

SET AUTOTRACE OFF

此为默认值,即关闭Autotrace 

2

SET AUTOTRACE ON EXPLAIN

只显示执行计划

3

SET AUTOTRACE ON STATISTICS

 只显示执行的统计信息

4

SET AUTOTRACE ON

 包含2,3两项内容

5

SET AUTOTRACE TRACEONLY

 与ON相似,但不显示语句的执行结果

       Statistics 名词解释

       1、recursive calls 递归调用(后台掉用的)

2、DB Block Gets(当前请求的块数目)当前模式块意思就是在操作中正好提取的块数目,而不是在一致性读的情况下而产生的块数。正常的情况下,一个查询提取的块是在查询开始的那个时间点上存在的数据块,当前块是在这个时刻存在的数据块,而不是在这个时间点之前或者之后的数据块数目。

3、Consistent Gets(数据请求总数在回滚段Buffer中的数据一致性读所需要的数据块)这里的概念是在处理你这个操作的时候需要在一致性读状态上处理多少个块,这些块产生的主要原因是因为由于在你查询的过程中,由于其他会话对数据块进行操 作,而对所要查询的块有了修改,但是由于我们的查询是在这些修改之前调用的,所以需要对回滚段中的数据块的前映像进行查询,以保证数据的一致性。这样就产 生了一致性读。

4、Physical Reads(物理读)就是从磁盘上读取数据块的数量,其产生的主要原因是: 1、 在数据库高速缓存中不存在这些块 2、 全表扫描 3、 磁盘排序

 

ORACLE执行计划的一些基本概念(1)

http://database.51cto.com/art/200611/34273.htm

ORACLE执行计划的一些基本概念(2)

http://database.51cto.com/art/200611/34273_1.htm

利用pl/sql执行计划评估SQL语句的性能简析

http://www.2cto.com/database/201204/127178.html

 

Oracle Hint的用法

http://happyqing.iteye.com/admin/blogs/1908488

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值