天天看点

检查行迁移的方法

检查行迁移的方法:

1) 运行$ORACLE_HOME/rdbms/admin/utlchain.sql

2) analyze table table_name list chained rows into CHAINED_ROWS

3) select * from CHAINED_ROWS where table_name='table_name';

清除的方法:

方法1:create table table_name_tmp as select * from table_name where rowed in (select head_rowid from chained_rows);

       Delete from table_name where rowed in (select head_rowid from chained_rows);

       Insert into table_name select * from table_name_tmp;

方法2:create table table_name_tmp select * from table_name ;

truncate table table_name

insert into table_name select * from table_name_tmp

方法3:用exp工具导出表,然后删除这个表,最后用imp工具导入这表

方法4:alter table table_name move tablespace tablespace_name,然后再重新表的索引

上面的4种方法可以用以消除已经存在的行迁移现象,但是行迁移的产生很多情况下时由于PCT_FREE参数设置的太小所导致,所以需要调整PCT_FREE参数的值

继续阅读