SQL- 求表空间-空间大小-使用多少空间-剩余多少空间

数据库的大小其实就是所有数据文件、联机日志文件及控制文件大小的和。  
可以简单的的使用  
  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   "totalFreeSpace(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   

你可能感兴趣的:(sql,F#,脚本)