xifenfei 发表于 2014-3-16 19:41:06

百试百爽的重设数据文件大小sql语句

当你想resize来减小数据文件大小时,可以通过下面脚本来完成,百试百爽set verify off
column file_name format a50 word_wrapped
column smallest format 999,990 heading "Smallest|Size|Poss."
column currsize format 999,990 heading "Current|Size"
column savingsformat 999,990 heading "Poss.|Savings"
break on report
compute sum of savings on report

column value new_val blksize
select value from v$parameter where name = 'db_block_size'
/

select file_name,
       ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
       ceil( blocks*&&blksize/1024/1024) currsize,
       ceil( blocks*&&blksize/1024/1024) -
       ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
from dba_data_files a,
   ( select file_id, max(block_id+blocks-1) hwm
         from dba_extents
      group by file_id ) b
where a.file_id = b.file_id(+)
/

column cmd format a75 word_wrapped

select 'alter database datafile '''||file_name||''' resize ' ||
       ceil( (nvl(hwm,1)*&&blksize)/1024/1024 )|| 'm;' cmd
from dba_data_files a,
   ( select file_id, max(block_id+blocks-1) hwm
         from dba_extents
      group by file_id ) b
where a.file_id = b.file_id(+)
and ceil( blocks*&&blksize/1024/1024) -
      ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) > 0

bbq 发表于 2014-3-16 20:42:35

不错,这个脚本很实用

yrg5101 发表于 2014-3-16 21:14:06

有时候 还是 会报错的我也经常用, 超过范围{:2_28:}   

xifenfei 发表于 2014-3-25 13:53:44

yrg5101 发表于 2014-3-16 21:14
有时候 还是 会报错的我也经常用, 超过范围

使用该脚本,应该不会吧

wang.hy8166 发表于 2014-3-27 13:06:00

这个很棒啊。。。。。。。。。。。

家里有人 发表于 2014-5-6 18:03:18

感谢飞总分享

Kelvin 发表于 2014-7-22 00:42:02

飞总的好东西

skyeyburg 发表于 2014-8-9 10:16:55

感谢飞总分享

Fung920 发表于 2014-10-17 10:02:16

不错,多谢飞总分享。

tinghai 发表于 2014-10-17 11:05:54

好用~~~
飞总的脚本就是多啊
页: [1] 2
查看完整版本: 百试百爽的重设数据文件大小sql语句