怎么理解数据库移动分区表和分区索引的表空间

网友投稿 312 2024-01-01

怎么理解数据库移动分区表和分区索引的表空间

这篇文章主要介绍“怎么理解数据库移动分区表和分区索引的表空间”,在日常操作中,相信很多人在怎么理解数据库移动分区表和分区索引的表空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解数据库移动分区表和分区索引的表空间”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

怎么理解数据库移动分区表和分区索引的表空间

移动分区表的表空间

 1) 非组合分区表

alter table RPT_F_STATION_DP move  PARTITION SYS_P3742 tablespace reportdata;

 2) 组合分区表:

   (1)先移动子分区到另一个表空间 :

alter table RPT_F_CABECF move  SUBPARTITION SYS_SUBP8842 tablespace reportdata;

(2)subpartition已经move走了,就剩下subpartition的father了,那就不需要move了,改一下分区的属性就可以了。

ALTER TABLE RPT_F_CABECF MODIFY DEFAULT ATTRIBUTES FOR  PARTITION PARTITION_660  TABLESPACE reportdata;

注:

如直接move含有子分区的分区将发生如下错误

ORA-14257: cannot move partition other than a Range or Hash partition

移动分区表上index的表空间

1)非分区index

ALTER INDEX PK_RPT_F_NOFINISH_WORKSHEET REBUILD TABLESPACE REPORTDATA;

2)无子分区的index  

ALTER INDEX IDX_RPT_F_STATION_DP_1 REBUILD PARTITION SYS_P3721  TABLESPACE REPORTDATA;

3)子分区index

ALTER INDEX IDX_RPT_F_CABECF_1 REBUILD SUBPARTITION SYS_SUBP8842 TABLESPACE REPORTDATA;

自动生成需要的脚本

SELECT    alter table

       || table_name

       || move  PARTITION

|| partition_name

       || tablespace reportdata;

  FROM USER_TAB_PARTITIONS

WHERE SUBPARTITION_COUNT = 0 AND tablespace_name = RMGZ; -- 非组合分区表

SELECT    alter table

       || table_name

       || move  subPARTITION

       || SUBPARTITION_NAME

|| tablespace reportdata;

  FROM USER_TAB_SUBPARTITIONS

WHERE SUBPARTITION_COUNT > 0 AND tablespace_name = RMGZ;  --移动子分区

SELECT    ALTER TABLE

       || table_name

       || MODIFY DEFAULT ATTRIBUTES FOR  PARTITION

|| partition_name

       ||   TABLESPACE reportdata;

  FROM USER_TAB_PARTITIONS

WHERE SUBPARTITION_COUNT > 0 AND tablespace_name = RMGZ;--修改母分区属性

 SELECT ALTER INDEX || INDEX_NAME || REBUILD TABLESPACE REPORTDATA;

FROM USER_INDEXES

 WHERE tablespace_name=RMGZ;

SELECT    ALTER INDEX

       || index_name

       || REBUILD PARTITION

|| PARTITION_NAME

       || TABLESPACE REPORTDATA;

  FROM USER_IND_PARTITIONS

  where SUBPARTITION_COUNT = 0

and tablespace_name=RMGZ; -- 无子分区的index

SELECT    ALTER INDEX

       || index_name

       || REBUILD SUBPARTITION

|| SUBPARTITION_NAME

       || TABLESPACE REPORTDATA;

  FROM USER_IND_SUBPARTITIONS

    where tablespace_name=RMGZ; --子分区index

到此,关于“怎么理解数据库移动分区表和分区索引的表空间”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Flutter成本太高了(flutter开发效率)
下一篇:如何解决tts卡顿(tts闪退)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~