平台人生
作者平台人生·2016-11-18 14:31
软件开发工程师·平台人生

Oracle开发建议系列第六期 ——分区表的索引

字数 577阅读 4059评论 0赞 0

索引服务于业务,开发人员应对表上各种查询需求进行综合考虑,统一规划,建立恰当的索引来满足业务需求。对于分区表上索引创建和使用同样遵循第三期分享的索引使用建议,下面我们总结一下,针对分区表上索引创建和使用,有哪些需要特殊注意的地方。

1、 业务查询SQL中指定有分区字段作为过滤条件,通过该条件可以将查询范围缩小到个别分区的,要建立local索引。分区字段本身选择性高的,创建以分区字段为起始字段的复合索引(Prefix索引);分区字段在本分区内选择性低的,可以建立该字段非起始字段,甚至不包括该字段的local索引(non-Prefix索引)。

2、 业务SQL过滤条件中无分区字段或业务会查询所有分区的,应建立全局索引(global index)。大表上的全局索引是否分区根据预期索引大小来决定,预期超过10G就应该按首字段随机分区,分区数量需要保证每个索引分区不超过10G。

3、 HASH分区表上的索引均应建为全局索引。

4、 分区DDL可导致全局索引失效。对分区进行删除、SPLIT、TRUNCATE等操作时,如果没有update indexes子句,且分区不为空时,会造成全局索引失效,影响业务运行。(注:包含update indexes子句会导致语句耗时增加,如果业务允许可以对失效后的全局索引rebuild或删除重新创建。)

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

作者其他文章

相关文章

相关问题

相关资料

X社区推广