lgcmmail 发表于 2012-02-20 17:52

关于ORACLE分区索引使用技术贴

为赚积分,写个local分区索引使用技术贴

关于local分区索引,有几个观点:
1、“前缀分区索引”性能好。
2、“非前缀分区索引”性能好。
在我看来,哪种索引实际性能好关键要看“数据”分布。

    一般我们为了提高查询性能都会建立复合索引,即多个字段组合的索引,而哪个字段排在前面则有较大学问,
前缀分区索引,顾名思义,索引的第一个字段是分区字段,在where 条件中有分区字段条件时,oracle先判断查询落在哪个分区,然后再判断使用哪个分区索引,所以,此种情况前缀分区索引的用处并不太大,应使用非前缀分区索引,这样,分区的特性可以利用上,分区索引也可利用上。那么我所谓的性能好坏要看“数据”分布是什么意思呢?
    “数据分布”意思是索引字段内容的分布情况,通过我的测试、分析,按时间范围分区类型的“后缀”分区索引,就是把时间分区字段放在复合索引的最后(好像还没有人这样命名),在性能上更优,原因是:
   1、where语句中有分区字段条件,可以定位分区。
   2、索引的结构优化,使索引的查询路径更短。
   经测试,在千万级的表中,非前缀分区索引和我的“后缀分区索引”在性能上可以相差几倍到几十倍。

   当然,关于分区索引的设计还有很多因素要全面、综合考虑,比如查询量、数据量、IO性能等等,在实际的应用中,还需要大家开动脑筋去思考。




renxiao2003 发表于 2012-02-26 22:05

这个不太了解。

baiyangdw 发表于 2012-02-27 09:06

我是来学习和获取积分的。呵呵
页: [1]
查看完整版本: 关于ORACLE分区索引使用技术贴