ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ALTER TABLE MOVE | SHRINK SPACE区别

ALTER TABLE MOVE | SHRINK SPACE区别

原创 Linux操作系统 作者:guocun09 时间:2012-01-04 15:49:43 0 删除 编辑

ALTER TABLE MOVE | SHRINK SPACE区别

1.move

analyze table GC.R_WIP_KEYPARTS_T compute statistics;

 

SELECT BLOCKS,EMPTY_BLOCKS FROM DBA_TABLES

WHERE OWNER='GC' AND TABLE_NAME='R_WIP_KEYPARTS_T';

BLOCKS:137452

EMPTY_BLOCKS:1812

 

SELECT BLOCKS FROM DBA_SEGMENTS

WHERE SEGMENT_NAME='R_WIP_KEYPARTS_T';

BLOCKS:139264

 

DELETE from GC.R_WIP_KEYPARTS_T where rownum<5000;

這是數據被刪除,但HWM不會下降。

 

select count(distinct dbms_rowid.rowid_block_number(rowid)) from GC.R_WIP_KEYPARTS_T;

可以看到當前行所占的block數。肯定比BLOCKS:137452少

 

ALTER TABLE GC.R_WIP_KEYPARTS_T  MOVE

 

analyze table GC.R_WIP_KEYPARTS_T compute statistics;

 

SELECT BLOCKS,EMPTY_BLOCKS FROM DBA_TABLES

WHERE OWNER='GC' AND TABLE_NAME='R_WIP_KEYPARTS_T';

BLOCKS:137381 --move之后看到BLOCKS減少

EMPTY_BLOCKS:1883

 

SELECT BLOCKS FROM DBA_SEGMENTS WHERE SEGMENT_NAME='R_WIP_KEYPARTS_T';

BLOCKS:139264 --空間并沒有回收,總的塊數還是139264,但HWM下降到了137381

注:DBA_TABLES中欄位含義

BLOCKS*

Number of used data blocks in the table

EMPTY_BLOCKS*

Number of empty (never used) data blocks in the table

 

 

 

2.SHRINK SPACE

ALTER TABLE GC.R_WIP_keyparts_T SHRINK SPACE;

 

ANALYZE TABLE GC.R_WIP_KEYPARTS_T COMPUTE STATISTICS;

 

SELECT BLOCKS FROM DBA_SEGMENTS WHERE SEGMENT_NAME='R_WIP_KEYPARTS_T';

BLOCKS:137312

 

SELECT BLOCKS,EMPTY_BLOCKS FROM DBA_tableS WHERE table_NAME='R_WIP_KEYPARTS_T';

BLOCKS:136688   EMPTY_BLOCKS:624

可以看到除了HWM下的空間下降,HWM上未使用的空塊也會有回收

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25583515/viewspace-714402/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: LOB学习
下一篇: fdisk
请登录后发表评论 登录
全部评论
DBA,掌握Oracle,SQLServer,MySQL,hadoop,casscandra等数据库。喜爱深入研究数据库技术原理,擅长管理和优化工作。

注册时间:2011-10-02

  • 博文量
    177
  • 访问量
    686675