在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定。
?
表空间的自由空间:
通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够。
? ? ? ? 请看下列的语句
? ? ? ??
select a.file_id "FileNo", a.tablespace_name "Tablespace_name", a.bytes "Bytes", a.bytes - sum(nvl(b.bytes, 0)) "Used", sum(nvl(b.bytes, 0)) "Free", sum(nvl(b.bytes, 0)) / a.bytes * 100 "%free" from dba_data_files a, dba_free_space b where a.file_id = b.file_id(+) group by a.tablespace_name, a.file_id, a.bytes order by a.tablespace_name
?
查询结果如下:
?
%free : 未被使用的空间
?
关于自由空间的管理,有下面的一些建议:
利用Export及Import命令卸出和装入表空间可以释放大量的空间,从而缓解增加另外的数据文件的要求。
如果包含具有高插入(insert)和更新(update)活动的表的表空间中自由空间的比重下降到了15%以下,要为此表空间增加更多的空间。
对于一个基本是静态表数据的表空间,如果有多于20%的自由空间,则可以考虑减少分配给它的文件空间量。
减少SYSTEM表空间的空间量比较困难,因为那要重建数据库。