oracle 11g 表查询慢优化过程

在维护数据库时遇到SQL查询速度慢的问题,原本应利用upload_date字段索引但实际未生效。通过10046事件分析,发现执行了全表扫描导致直接路径读等待。在Oracle 11g中,全表扫描的直接路径读可避免对Buffer Cache的冲击。为优化查询,通过SQL提示强制使SQL走索引,成功减少物理读,显著提升了查询效率。
摘要由CSDN通过智能技术生成

今天维护数据库时发现有条sql查询很慢,用set autot 发现是走upload_date字段索引的,当细致查下来发现其实并没有走索引。通过10046事件,发现走的是全表扫描:

从下面看出wait主要放映在 direct path read 该等待事件是ORACLE 11G的新特性。

Oracle Database 11g中有一个新特性,全表扫描可以通过直接路径读的方式来执行(Direct Path Read),如果全表扫描的大量数据读取是偶发性的,则直接路径读可以避免大量数据对于Buffer Cache的冲击。绕过buffer cache,这样的全表扫描就是物理读了。 在10g中,都是通过buffer来读的。
 

 

走的是全表扫描:

这是trc格式化以后得出的结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值