码迷,mamicode.com
首页 > 移动开发 > 详细

oracle 索引移动到不同的分区

时间:2015-11-12 11:24:27      阅读:362      评论:0      收藏:0      [点我收藏+]

标签:

最近系统空间不够,要进行数据库清理,truncate数据之后,发现数据不连续,导致这个表空间占用巨大,想过使用shrink、move。但是shrink得效率比较慢,选择了move。语句大概如此:

SELECT alter table sdmp. || C.TABLE_NAME ||  move partition  ||
       C.PARTITION_NAME ||  tablespace sdmp_s update indexes;
  FROM all_tab_statistics C
  INNER JOIN all_tab_partitions s
  ON s.partition_name=c.PARTITION_NAME AND 
  s.tablespace_name=SDMP_S_201502
 WHERE C.OWNER = SDMP
   AND C.OBJECT_TYPE <> INDEX ;

发现有些索引没有跟着移动目的(主要都是分区索引):使用select 找出对应语句并移动

   SELECT alter index sdmp. || A.SEGMENT_NAME || rebuild   partition ||  A.PARTITION_NAME || tablespace SDMP_S  ;
  FROM DBA_SEGMENTS A
  LEFT JOIN DBA_INDEXES B
    ON A.SEGMENT_NAME = B.INDEX_NAME
 WHERE A.TABLESPACE_NAME = SDMP_S_201302;

删除表空间

 drop tablespacee SDMP_S_201302 including contents and datafiles;

 

oracle 索引移动到不同的分区

标签:

原文地址:http://www.cnblogs.com/2005wind/p/4958234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!