ORACLE 收縮資料檔案

renjixinchina發表於2012-11-12
select /*+ordered use_hash(a,c)*/
 'alter database datafile ''' || a.file_name || ''' resize '
 
 || round(a.filesize - (a.filesize - c.hwmsize - 100) * 0.8) || 'M;',
 a.filesize,
 c.hwmsize

  from (select file_id, file_name, round(bytes / 1024 / 1024) filesize
          from dba_data_files) a,
       (select file_id, round(max(block_id) * 8 / 1024) HWMsize
          from dba_extents
         group by file_id) c
 where

 a.file_id = c.file_id
 and a.filesize - c.hwmsize > 100;

--收縮未使用的資料檔案
select 'alter database datafile '||''''||a.FILE_NAME ||''''||' resize 1M ;'
  from dba_data_files a
 where a.TABLESPACE_NAME not in
       (select m.TABLESPACE_NAME from dba_segments m)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-749003/,如需轉載,請註明出處,否則將追究法律責任。

相關文章