前言
最近因业务并发量上升,开发反馈对订单表Insert性能降低。应开发要求对涉及Insert的表进行分析并提供优化方案。
一般对Insert 影响基本都在索引,涉及表已按创建日期做了分区表,索引全部为普通索引未做分区索引。
优化建议:
- 1、将UNIQUE改为HASH(64) GLOBAL INDEX,NORMAL改为Local INDEX。
优化思路:分散IO及减少维护成本,Oracle在索引分裂是当索引块空间不足时,通过分裂为新块以容纳新数据的操作,会引发性能问题。普通索引和分区索引(尤其是本地分区索引)在索引分裂时的行为存在显著差异。
- 2、RAC环境使用TAF(Transparent Application Failover)即透明应用程序故障转移技术,通过应用细化连接,减少RAC集群的内网交互,从而减少RAC集群的负载。
优化方案压力测试
表1:
- 数据量:1.5亿,需要调整的索引:唯一索引:3,普通索引:3
- 优化后:
表2:
- 数据量:1.4亿,需要调整的索引:唯一索引:1,普通索引:4