oracle数据库大型索引的性能问题

在实践中ORACLE数据库大型索引会引发性能问题。

      大型索引必须被分区,避免索引分裂影响交易,降低索引层级,提升性能,提高索引可维护性。

     索引也可以进行分区。可以选择按照表分区的方式进行分区(local索引),也可以针对global索引进行范围和hash分区。需注意global分区索引必须是前缀索引。

     大索引阈值:单个索引或单个索引分区的大小大于10GB。

分析索引大小。针对大索引进行分析,针对大型的global类型的索引删除后进行重建。包含分区字段的查询,可建立local索引进行相应优化。不包含分区字段的查询,使用global索引,global索引优先将选择性高的字段放在前缀,同时使用索引前缀字段进行分区,如查询包含范围查询情况,建议使用区间分区,单点查询情况,使用hash分区。分区索引建立示例:

local分区:

CREATE INDEX idx_local ON table_A(col_A,col_B) local;

global_range分区:

CREATE INDEX idx_glob_range ON table_A (col_A,col_B) GLOBAL PARTITION BY range (col_A)
    (PARTITION p1 VALUES LESS THAN (10) TABLESPACE users,PARTITION p2 VALUES LESS THAN (20) TABLESPACE users,PARTITION p_max VALUES LESS THAN (MAXVALUE) TABLESPACE users);

global_hash分区:

CREATE INDEX idx_glob_hash ON table_A (col_A,col_B) GLOBAL PARTITION BY HASH(col_A) partitions 16;

注意:使用分区索引,在进行分区操作(drop、merge等)需update indexes。

更多内容请关注公众号“测试小号等闲之辈”~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值