Oracle执行计划中集中常见的访问路径

本文介绍了Oracle数据库中常见的访问路径,包括全表扫描、ROWID访问、索引扫描等,详细讲解了每种访问方式的特点和适用场景,并提到了索引对查询性能的影响以及如何优化SQL执行计划。
摘要由CSDN通过智能技术生成

阅读《SQL优化核心思想》第4章 访问路径(ACCESS PATH) 笔记

 

访问路径值得是通过哪种扫描方式获取数据。常见的访问路径有

一、TABLE ACCESS FULL

表示全表扫描,一般是多块读,HINT:FULL(表名/别名)

Oracle里最小的存储单位是块(Block),物理上连续的块组成了区(extent),区又组成了段(segment),因为区里面的数据块在物理上是连续的,所以全面扫描可以多块读。

注:

1、如果表中有clob字段,clob会单独存放在一个段中,当全表扫描到clob字段时,性能会严重下降,这时可以考虑字段拆分成多个varchar2(4000),或存放在nosql数据库中

2、如果表中部分块已经缓存在buffer cache中,在进行全表扫描的时候,扫描到已经被缓存的块所在区时,就会引起I/O中断,如果一个表不同的区又大量块还存在buffer cache中,全表扫描性能会严重下降。

 

二、TABLE ACCESS BY USER ROWID

表示直接用ROWID获取数据,单块读。

这种访问路径是Oracle所有访问路径中性能最好的

 

三、TABLE ACCESS BY ROWID RANGE

表示ROWID范围扫描,多块读。

因为同一个块里的ROWID是连续的,同一个EXTENT里面的ROWID也是连续的,所以可以多块读。

 

四、TABLE ACCESS BY INDEX ROWID

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值