上一期留下了一个悬念,有几个朋友也参与了留言,大家都看出了主要的区别是IO 请求多了,却没想到一个简单的索引重建就带来了这么大的性能提升。
通过执行计划我们可以看到,重建索引前后,XLA_EVENTS_N3索引的IO request 从310K,降到了5311次。返回1431K索引记录,5311次是比较正常的一个值(block size 8k字节,每个block存放几百条索引记录)。
为什么会想到索引重建?
因为正常情况下索引扫描的io quests要比索引回表的io requests要低,而我们看到的优化前的执行计划,实际恰恰相反。
验证索引是否真的要重建?
我们通过一个脚本,可以检查索引的稀疏度,本case得到下面结果(截取部分):
这个结果表明:如果重建索引,可以节省798221个block。
根据执行计划的判断,再加上稀疏索引检查得到的具体值的证实,我们就可以通过重建索引来提高索引扫描的效率了。
本文分享自 老虎刘谈oracle性能优化 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!