查看表空间使用情况sql语句

来源:互联网 发布:linux 多进程 例子 编辑:程序博客网 时间:2024/04/30 13:19

select b.file_name 物理文件名,
       b.tablespace_name 表空间,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
  from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id
 group by b.tablespace_name, b.file_name, b.bytes
 order by b.tablespace_name;

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
       D.TOT_GROOTTE_MB "表空间大小(G)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(G)",
       TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
                     2),
               '990.99') "使用比",
       F.TOTAL_BYTES "空闲空间(G)",
       F.MAX_BYTES "最大块(G)"
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BYTES) / (1024 * 1024*1024), 2) TOTAL_BYTES,
               ROUND(MAX(BYTES) / (1024 * 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*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;
 --查看当前用户每个表占用空间的大小
 Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents where bytes/1024/1024>10 Group By Segment_Name;
 
 select * from all_all_tables b where b.tablespace_name = 'SYSTEM' and b.blocks > 1000;
 
 select * from SYS.IDL_UB1$;
 
 SELECT *
   FROM (SELECT BYTES, segment_name, segment_type, owner
           FROM dba_segments
          WHERE tablespace_name = 'SETTLEDATA'
          ORDER BY BYTES DESC)
  WHERE ROWNUM < 10;
 
  select gname,dblink,masterdef,master from dba_repsites;
  select gname,master,status from dba_repgroup;

 

0 0