简述收缩表空间的办法

2012-10-17来源 : 互联网

我们来看一下如何收缩表空间,其实方法很简单。*先我们先计算datafile可以resize收缩的空间.col name for a40col resizecmd for a80

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;' ResizeCMDfrom v$datafile a,     (select file_id,max(block_id+blocks-1) HWM       from dba_extents       group by file_id) bwhere a.file# = b.file_id(+)and (a.bytes - HWM *block_size)>0order by 5

如果只是想对某个表个间的datafile resize,可采用: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;' ResizeCMDfrom v$datafile a,     (select file_id,max(block_id+blocks-1) HWM       from dba_extents where file_id in              (select b.file#  From v$tablespace a ,v$datafile b                where a.ts#=b.ts# and a.name='MP2000')       group by file_id) bwhere a.file# = b.file_id(+)and (a.bytes - HWM *block_size)>0order by 5

计划tempfile可以resize的空间.on apply that have only one tempfile

select 'alter database tempfile '''||a.name ||''' reize '||b.siz||'M;' from v$tempfile a,     (select tmsize.maxblk*bk.value/1024/1024 siz from         (select nvl(max(segblk#),128) maxblk  from v$***t_usage) tmsize,         (select value From v$parameter where name = 'db_block_size') bk) b

免责声明内容来源于网络,本站不保证所有内容的完整性、真实性和准确性,如有侵权请及时联系,我们核对情况属实,对该内容进行下架删除。[删除申请]

咨询项目,请扫微信二维码。
微信扫码
在线咨询
领取资料
微信扫一扫、长按二维码、点击“在线咨询”,发送项目名或品牌名,立即咨询加盟项目。

温馨提醒创业有风险,投资需谨慎。为规避加盟投资风险,3158招商加盟网建议您在投资前务必多考察、多了解,降低创业风险。

©2004 3158招商加盟网. All Rights Reserved.

3158招商加盟网友情提示:投资有风险,选择需谨慎

张靓颖跨时空线上演唱会