这篇文章将为大家详细讲解有关数据库中如何实现查询表空间使用情况的脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
脚本如下:
Select Distinct a.Tablespace_Name ,
Trunc(((Free_Space) / Total_Space) * 100) || '%' ,
To_Char(Free_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G' Free_Space ,
To_Char(Total_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G' Total_Space,
c.autoextensible,
c.maxbytes/1024/1024/1024||'G' maxbytes,
(c.increment_by*8192) / 1024/1024||'M'
From (Select Tablespace_Name, Sum(Bytes) Free_Space
From Dba_Free_Space
Group By Tablespace_Name) a,
(Select Tablespace_Name, Sum(Bytes) Total_Space
From Dba_Data_Files
Group By Tablespace_Name) b,
dba_data_files c
Where a.Tablespace_Name = b.Tablespace_Name and a.tablespace_name = c.Tablespace_Name and c.tablespace_name = b.Tablespace_Name
order by 2 ;
解释如下:
Tablespace_Name ---表空间的名字。
Trunc(((Free_Space) / Total_Space) * 100) || '%' ---表空间的空闲率,这比例越小,说明数据的剩余的空间越大,这比例越大,说明数据的剩余的空间越小。
To_Char(Free_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G' Free_Space ---表空间剩余的多少空间。大小为G,大家可以根据自己的实际情况调整。可以To_Char(Free_Space / 1024 / 1024 , '9999999990.99') || 'M' Free_Space,计算出来的结果是按M来算的。
To_Char(Total_Space / 1024 / 1024 / 1024, '9999999990.99') || 'G' Total_Space ---表空间总的大小。大小为G,大家可以根据自己的实际情况调整。
c.autoextensible, ----数据文件是否开启自动增长。yes表示是开启,ON表示未开启。
c.maxbytes/1024/1024/1024||'G' maxbytes, ---数据文件最大能增大到多少。单位为G,说的直白点,就是这个数据文件增长到这个数值以后就不在自动增长了。一般情况下,一个数据文件最大为32g,生产环境中一般是添加数据文件,一个数据文件为30G,不开自动增长。
(c.increment_by*8192) / 1024/1024||'M' ---数据文件开启自动增长后,每次增加多少,大小为M。
查询某个表空间的具体信息
select FILE_NAME,TABLESPACE_NAME,BYTES/1024/1024/1024||'G',AUTOEXTENSIBLE,MAXBYTES/1024/1024/1024||'G' from dba_data_files where TABLESPACE_NAME='表空间名字';
关于“数据库中如何实现查询表空间使用情况的脚本”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。