如何查看数据库的大小,和空间使用情况

时间:2023-02-02 13:57:46
请教在sql中如何查看数据库的大小,和空间使用情况,我知道该使用dba_free_space,请问具体该怎么使用呢。

3 个解决方案

#1


http://www.greatchinatelecom.com/card/oracle/dict.htm

#2


数据库的大小其实就是所有数据文件、联机日志文件及控制文件大小的和。
可以简单的的使用
select sum(bytes) from dba_data_file;

下而把几个较实用脚本贴上,是我常用的.

1、查看表空间的使用状况。
SELECT upper(f.tablespace_name) 表空间名,
       d.Tot_grootte_Mb "表空间大小(M)",
       d.Tot_grootte_Mb - f.total_bytes "已使用空间(M)",
       round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) "使用比",
       f.total_bytes "空闲空间(M)",
       f.max_bytes "最大块(M)"
 FROM      
    (SELECT tablespace_name,
            round(SUM(bytes)/(1024*1024),2) total_bytes,
            round(MAX(bytes)/(1024*1024),2) max_bytes
      FROM sys.dba_free_space
     GROUP BY tablespace_name) f,
    (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
      FROM   sys.dba_data_files dd
      GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name    
ORDER BY 4 DESC

2、查看无法扩展的段
SELECT segment_name,
       segment_type,
       owner,
       a.tablespace_name "tablespacename",
       initial_extent/1024 "inital_extent(K)",
       next_extent/1024 "next_extent(K)",
       pct_increase,
       b.bytes/1024 "tablespace max free space(K)",
       b.sum_bytes/1024 "tablespace total free space(K)"
  FROM dba_segments a,
       (SELECT tablespace_name,MAX(bytes) bytes,SUM(bytes) sum_bytes FROM dba_free_space GROUP BY tablespace_name) b
 WHERE a.tablespace_name=b.tablespace_name 
   AND next_extent>b.bytes
 ORDER BY 4,3,1  
       

#3


最简单的方发,看windows上安装的ORACLE CLIENT里的叫STORAGE MANAGER的工具

#1


http://www.greatchinatelecom.com/card/oracle/dict.htm

#2


数据库的大小其实就是所有数据文件、联机日志文件及控制文件大小的和。
可以简单的的使用
select sum(bytes) from dba_data_file;

下而把几个较实用脚本贴上,是我常用的.

1、查看表空间的使用状况。
SELECT upper(f.tablespace_name) 表空间名,
       d.Tot_grootte_Mb "表空间大小(M)",
       d.Tot_grootte_Mb - f.total_bytes "已使用空间(M)",
       round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2) "使用比",
       f.total_bytes "空闲空间(M)",
       f.max_bytes "最大块(M)"
 FROM      
    (SELECT tablespace_name,
            round(SUM(bytes)/(1024*1024),2) total_bytes,
            round(MAX(bytes)/(1024*1024),2) max_bytes
      FROM sys.dba_free_space
     GROUP BY tablespace_name) f,
    (SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
      FROM   sys.dba_data_files dd
      GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name    
ORDER BY 4 DESC

2、查看无法扩展的段
SELECT segment_name,
       segment_type,
       owner,
       a.tablespace_name "tablespacename",
       initial_extent/1024 "inital_extent(K)",
       next_extent/1024 "next_extent(K)",
       pct_increase,
       b.bytes/1024 "tablespace max free space(K)",
       b.sum_bytes/1024 "tablespace total free space(K)"
  FROM dba_segments a,
       (SELECT tablespace_name,MAX(bytes) bytes,SUM(bytes) sum_bytes FROM dba_free_space GROUP BY tablespace_name) b
 WHERE a.tablespace_name=b.tablespace_name 
   AND next_extent>b.bytes
 ORDER BY 4,3,1  
       

#3


最简单的方发,看windows上安装的ORACLE CLIENT里的叫STORAGE MANAGER的工具