1、查看各数据文件的使用情况,sql语句如下:
select
d.file_name,d.file_id,
round(d.total_size_gb) total_size_gb,
round(f.free_size_gb) free_size_gb,
round(((d.total_size_gb - f.free_size_gb)/d.total_size_gb) * 100) used_space_pct
from
(
select
file_name,file_id,
sum(bytes)/1024/1024/1024 total_size_gb
from
dba_data_files
group by file_name,file_id
) d
left join
(
select
file_id,tablespace_name,
sum(bytes)/1024/1024/1024 free_size_gb
from
dba_free_space
group by file_id,tablespace_name
) f
on d.file_id = f.file_id
/*where f.tablespace_name='DPRP_DATA'*/
order by used_space_pct asc;
查询结果字段说明:
FILE_NAME :数据文件在服务器上的路径及位置
FILE_ID : 数据库文件的ID号
TOTAL_SIZE_GB: 数据文件的大小
FREE_SIZE_GB:数据文件的空余大小
USED_SPACE_PCT:数据文件的使用量
如上图,FILE_ID字段值未30的数据文件,实际大小20G,还有13G空余的,,只使用了20-13=7G,使用量为32%,,为了节约服务器的磁盘空间,我们可以将数据文件缩小到10G,10-7=3,多流出3G的空间,防止数据文件内容增加的时候没有剩余空间,给它剩余3G的空间,使用如下的sql:
alter database datafile 30 resize 10G; //执行缩小的语句
请看:http://blog.sina.com.cn/s/blog_54eeb5d901000bvg.html