数据库管理-第六十一期 Exadata是否需要索引(20230314)

文章讨论了一体机Exadata在拥有强大SmartScanOffload技术的情况下,是否仍然需要索引的问题。通过测试表明,即使在Exadata上,适当的索引设计仍然能显著提升查询性能,不应过分依赖硬件资源。文章强调了数据库表设计和性能优化的重要性。
摘要由CSDN通过智能技术生成

第六十一期 Exadata是否需要索引

这一期的灵感来自于之前协助一个业务处理的一个问题,因为索引确实造成了测试库一条语句大量的smart scan等待,该语句执行时间很长。众所周知,一体机的IO非常强,几乎可以算是无解的强大,其中还有smart scan offload技术可以在存储测加速结果输出。那么在一体机上到底还需要索引不呢?

1 smart scan offload

在这里插入图片描述
官方文档的通俗解释其实就是Exadata会现在存储侧预先筛选数据,减少传输到计算节点的数据,减少IO的量与延迟。当然smart scan offload还是有一些针对性的。

2 做一个测试

首先,借用一张生产表,900w+的数据量:
在这里插入图片描述
使用此表创建两个新表t1和t2:
在这里插入图片描述
在这里插入图片描述
同时在t1表创建一个主键:
在这里插入图片描述
为了避免因为统计信息和存储缓存带来的影响,对t1、t2表进行处理:
在这里插入图片描述
在这里插入图片描述
打开执行计划通过相同列(XXX_INFO_ID列,即t1表建立主键的列)进行查询:
在这里插入图片描述
在这里插入图片描述

3 结论

在消除各种影响的情况下,数据一致,统计信息都收集了,数据都缓存到flash card或PEME的情况下,两条语句仅仅因为一个主键的区别,但从执行时间来看,1s(其实不到)和15s之间至少15倍的差距就能说明问题,更不要说各种CPU、IO的操作消耗。当然如果没有加索引的情况换到普通X86+集中存储的环境,恐怕15s还跑不出结果。
即使强如一体机,在表设计上也是有很多可优化的地方,所以作为DBA(或者开发)千万不要过分依赖那些所谓强无敌的硬件资源,如同前面写过的“壮汉挤门”这个是靠单纯硬件解决不了的,而需要使用合理的技术、进行合理的逻辑设计才能解决的。曾几何时我也见到过一个笛卡尔积把4TB内存的HANA直接撑挂的故障。

总结

老规矩,知道写了些啥。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖头鱼的鱼缸(尹海文)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值