Monthly Archives: August 2012

分区索引的重新rebuild

数据仓库的场景中,在进行大数据量导入之前,通常的做法是先不建索引,因为这个过程中如果要维护索引,会大大降低导入的性能。那么如果在环境下索引已经建好而且不能删除的情况下,有什么好的办法可以绕过去? 在Oracle 11g中提供了不可用索引和不可视索引,今天主要介绍不可用索引,通过如下的SQL可以暂时使索引不可视: alter index “index name” unusable; 这样在使用之前,只需要在会话级别设置 alter session set skip_unusable_indexes=true 即可。 在使用完成之后,可以通过如下命令 alter index “index name” rebuild tablespace “tbs name”; 在把索引的状态进行恢复。 但是对于分区索引,这个时候就会报错,因为对于分区索引来说,不能通过简单的一句话就把所有的分区都重建,还必须要指定具体的分区来逐一进行重建。索引的分区就是表对应的分区,从视图dba_tab_partitions可以查到表的分区,然后通过如下的命令: alter index “index name” rebuild partition “partition name” tablespace “tbs name”; 即可。 EOF PS:使用了代码插件,没想到”“居然被当成了代码,没显示出来。

Posted in 数据库 | Tagged | Leave a comment