压缩oracle表空间

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

压缩oracle表空间
今天在测试⼀个数据导⼊的时候,悲惨的发现硬盘⼜被数据⽂件占满了,最⼤的⼀个表空间有9G,其他的都有好⼏个G。

我的⽤户所关联的表都删除了,但是表空间不能⾃⼰释放。

找到了下⾯⼀条SQL语句,它的作⽤是查询(拼接)出缩⼩表空间⽂件(datafile)的语句,默认是计算所有的表空间⽂件,给出可以释放的⼤⼩。

根据它给出的结果,执⾏类似“ alter database datafile 'E:\ORACLE\NNC_DATA03.DBF' resize 1208M;”的语句,就可以⽴竿见影的看到压缩表空间的效果了。

select a.file#,,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 '''||||''' 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。

相关文档
最新文档