日期:2014-05-17  浏览次数:21005 次

Oracle 区间分区+散列分区 执行计划
表data_01,以c_time字段的区间分区,和以data_id字段的散列子分区。局部索引是以(data_id,c_time)。

有如下查询:

select * from c_data_01 t where data_id = '01030040001' and 
c_time >= to_date('2013-3-15 0:00:00','yyyy-mm-dd hh24:mi:ss') and 
c_time < to_date('2013-3-16 00:00:00','yyyy-mm-dd hh24:mi:ss')

在PL/SQL Developer中的执行计划为:


求执行计划的解释,特别是为什么partition hash single 在 partition range single 前面?
oracle 分区 执行计划 区间 散列

------解决方案--------------------
一直都是先子分区然后分区吧
------解决方案--------------------
复合分区是如何建立的?

索引是否失效?

一般你这样的建议做复合索引分区即可,没有必要建立复合分区
------解决方案--------------------
很正常,因为优化器觉得这样做效率会高点。
------解决方案--------------------
引用:
引用:复合分区是如何建立的?

索引是否失效?

一般你这样的建议做复合索引分区即可,没有必要建立复合分区

先以c_time字段做区间分区,再以data_id字段做散列分区。索引没失效。没明白你这里说的复合索引分区和复合分区的区别。。。


执行计划的顺序是先子分区后分区再后全表。