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;

wKioL1bTusuwem-eAAHyMbbPGGw316.png


查询结果字段说明:

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; //执行缩小的语句

wKioL1bTuxDzmPpzAADknp3NFzs119.png



请看:http://blog.sina.com.cn/s/blog_54eeb5d901000bvg.html