http://space.itpub.net/3090/viewspace-678200
查找 数据文件大小和实际大小,并 收缩数据文件(原创)
在实际的生产过程中,实际的数据文件大小或者
表空间大小和实有数据大小是不相符的,所以有时有必要进行表空间,或者数据文件进行收缩。
(_(`3t'tPXj8q^7656893
以下是我写的一个
sql以供大家方便执行。
v|EZgr:c\7656893
--查找并收缩数据文件
select m1.file_id "文件#" ,
m1.name "文件名",
m1.size_mb_fact "实际文件大小(MB)",
m1.size_mb_data "数据占有大小(MB)",
round(m1.size_mb_fact*100/ m1.size_mb_data, 2) "数据和文件的比率",
case when round(m1.size_mb_fact*100/ m1.size_mb_data, 2)>110 and m1.size_mb_fact>4 then --大于110则进行收缩数据文件
'alter database datafile '''||m1.name||''' resize '||to_char(round(m1.size_mb_data*1.2,0))||'M;'
else null end "收缩数据文件命令"
from (select file_id, m.name, m.size_mb_fact, max(block_id)*8192/1024/1024 size_mb_data
from dba_extents a,
(select b.file#, b.name, b.BYTES/1024/1024 size_mb_fact from v$datafile b) m
where a.file_id = m.file#
group by a.file_id, m.name, m.size_mb_fact
) m1
order by "数据和文件的比率" desc;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7656893/viewspace-681022/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7656893/viewspace-681022/