查看oracle数据库表空间使用情况

(1)查看所有表空间大小

SELECT tablespace_name, SUM(bytes) / 1024 / 1024
  FROM dba_data_files
 GROUP BY tablespace_name;

(2)查看未使用的表空间大小

SELECT tablespace_name, SUM(bytes) / 1024 / 1024
  FROM dba_free_space
 GROUP BY tablespace_name;

(3)查看表空间的所有使用情况

SELECT a.tablespace_name, total, free, total - free used
  FROM (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
          FROM dba_data_files
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 free
          FROM dba_free_space
         GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name;

(4)查看所有segment的大小

SELECT Segment_Name, SUM(bytes) / 1024 / 1024
  FROM User_Extents
 GROUP BY Segment_Name;

(5)如何查看oracle临时表当前正在使用的临时表空间大小

SELECT SE.USERNAME,
       SE.SID,
       SU.EXTENTS,
       SU.BLOCKS * TO_NUMBER(RTRIM(P.VALUE)) AS SPACE,
       TABLESPACE,
       SEGTYPE,
       SQL_TEXT
  FROM V$SORT_USAGE SU, V$PARAMETER P, V$SESSION SE, V$SQL S
 WHERE P.NAME = 'db_block_size'
   AND SU.SESSION_ADDR = SE.SADDR
   AND S.HASH_VALUE = SU.SQLHASH
   AND S.ADDRESS = SU.SQLADDR
 ORDER BY SE.USERNAME, SE.SID;

(6)查询所有的表空间

SELECT tablespace_name FROM dba_tablespaces;

(7)查看表空间中分布的用户信息

SELECT tablespace_name, owner, SUM(bytes)
  FROM dba_segments
 GROUP BY tablespace_name, owner;

本文标题:查看oracle数据库表空间使用情况

本文链接:http://yedward.net/?id=86

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章