Row Migration是Oracle里面的一个重要的基本概念 一般传统意义上我们需要消除行迁移 因为这样会造成额外的IO消耗传统的办法一般是导入倒出整个表 但是这样的风险比较大而且Downtime会比较长 当有外键约束之类的时候也非常的麻烦 也有人选择用删除migration的行然后重新Insert 但是和Exp/Imp一样当遭遇到FK/PK限制的时候也会很头疼 我们可以用下面的办法来最方便的进行重组消除row migration SQL> alter table t add t date default sysdate; Table altered SQL> c/t/t * alter table t add t date default sysdate SQL> / Table altered SQL> c/t/t * alter table t add t date default sysdate SQL> / Table altered SQL> analyze table t compute statistics; Table analyzed SQL> select table_namenum_rowsCHAIN_CNT from user_tables where table_name=T; TABLE_NAME NUM_ROWSCHAIN_CNT T SQL> alter table t move ; Table altered SQL> analyze table t compute statistics; Table analyzed SQL>select table_namenum_rowsCHAIN_CNT from user_tables where table_name=T; TABLE_NAME NUM_ROWSCHAIN_CNT T |