查询表空间使用情况的脚本

来源:这里教程网 时间:2026-03-03 11:48:28 作者:

看网上由很多查询数据库表空间的脚本,在此基础上我根据自己的需要又添加了自己需要查询的东西,脚本如下: 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='表空间名字';

相关推荐