rebuild 分区索引

今天要做一个任务,rebuild 一个索引, 该索引建立在有11亿条数据的表上。

对于非组合分区索引,需要rebuild 每个分区(partition),不能直接rebuild整个索引,

对于组合分区索引,需要rebuild每个子分区(subpartition),不能直接rebuild整个索引,也不能直接rebuild 分区(partition)

由于我要rebuild的索引很大,有100多个分区,928个子分区,因此利用手工写rebuild命令显然不合适(要写928个命令 哭。。。),下面整理一下脚本供以后利用。

由于我这里是仓库环境,所以我没有写rebuild online.另外请注意,sunpartition 的索引 rebuild 的时候不能 设置 nologging, pctfree ...等storage条件。只能设置 tablespace ...parallel 否则 报错如下:

ORA-14189: this physical attribute may not be specified for an index subpartition

非组合分区索引

SET ECHO OFF
set termout off 
set feedback off
set heading off
set linesize 200
set pagesize 10000

spool c:/partition.sql

select 'alter index ' || index_owner || '.' ||index_name ||' rebuild partition ' || PARTITION_NAME || ' nologging parallel ;'
from dba_ind_partitions where index_owner='&index_owner' and index_name=&index_name;

spool off

 

对于组合分区索引


SET ECHO OFF
set termout off 
set feedback off
set heading off
set linesize 200
set pagesize 10000

spool c:/subpartition.sql
select 'alter index ' || index_owner || '.' ||index_name ||' rebuild subpartition ' || subpartition_name || '  parallel ;'
from dba_ind_subpartitions where index_owner='&index_owner' and index_name='&index_name';
spool off

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值