技术开发 频道

Oracle学习:分区表和索引

  分区索引:

  分为global, local index

  local partitioned index:

  每个local index对应一个分区。增加和删除分区自动的增加和删除了local index。

  Local index可以是全表unique的,条件是partition key必须是index columns的一部分?

  CREATE INDEX employees_local_idx ON employees (employee_id) LOCAL;

  分区上的位图索引只能建立为local partitioned index,不能是global

  Global partitioned index:

  索引也分区,但是分几个区,按照什么样的partition key分区跟表没有关系。不能增加分区,可以使用ALTER INDEX SPLIT PARTITION;删除:ALTER INDEX DROP PARTITION;这些操作会使的索引失效,所以建议:

  ALTER TABLE DROP PARTITION P1 UPDATE GLOBAL INDEXES

  这样保证索引仍然有效,online,不需重建。

  CREATE INDEX employees_global_part_idx ON employees(employee_id)

  GLOBAL PARTITION BY RANGE(employee_id)

  (PARTITION p1 VALUES LESS THAN(5000),

  PARTITION p2 VALUES LESS THAN(MAXVALUE));

  Global Nonpartitioned Indexes:

  怎样提高性能:

  Partition Pruning

  根据SQL自动选择应该访问哪些必要的分区,partition pruning可以跳过不必要的索引或者表分区或子分区。但是如果SQL对partition columns作了function( to_date除外),则不会删除分区。

0
相关文章