您的位置:首页 > 数据库 > Oracle

oracle 收缩表空间和数据文件,压缩表

2016-08-29 13:53 525 查看
select a.file#,
a.name,
a.bytes / 1024 / 1024 CurrentMB,
ceil(HWM * a.block_size) / 1024 / 1024 ResizeTo,
(a.bytes - HWM * a.block_size) / 1024 / 1024 ReleaseMB,
'alter database datafile ''' || a.name || ''' resize ' ||
ceil(HWM * a.block_size / 1024 / 1024) || 'M;' ResizeCMD
from v$datafile a,
(select file_id, max(block_id + blocks - 1) HWM
from dba_extents
group by file_id) b
where a.file# = b.file_id(+)
and (a.bytes - HWM * block_size) > 0
order by 5
begin
execute immediate 'alter table table_name enable row movement';
execute immediate 'alter table table_name shrink space';
execute immediate 'alter table table_name enable row movement';
execute immediate 'alter table table_name shrink space';
execute immediate 'alter table table_name enable row movement';
execute immediate 'alter table table_name shrink space';
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: