史上最全Oracle数据库查看表空间的名称及大小、使用情况等

1.查看表空间物理文件的名称及大小

SELECT TABLESPACE_NAME,

FILE_ID,

FILE_NAME,

ROUND(BYTES / (1024 * 1024), 0) TOTAL_SPACE

FROM DBA_DATA_FILES

ORDER BY TABLESPACE_NAME;

2.查看表空间的名称及大小

SELECT T.TABLESPACE_NAME,

ROUND(SUM(BYTES / (1024 * 1024)), 0) TS_SIZE

FROM DBA_TABLESPACES T, DBA_DATA_FILES D

WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME

GROUP BY T.TABLESPACE_NAME;

3.查看表空间的使用情况

SELECT SUM(BYTES) / (1024 * 1024) AS FREE_SPACE,

TABLESPACE_NAME

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME;

SELECT A.TABLESPACE_NAME,

A.BYTES TOTAL,

B.BYTES USED,

C.BYTES FREE,

(B.BYTES * 100) / A.BYTES "% USED ",

(C.BYTES * 100) / A.BYTES "% FREE "

FROM SYS.SM$TS_AVAIL A,

SYS.SM$TS_USED B,

SYS.SM$TS_FREE C

WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME

AND A.TABLESPACE_NAME = C.TABLESPACE_NAME;

4.查看数据库的表空间大小(G为单位)及使用率

SELECT A.TABLESPACE_NAME "表空间名",

TOTAL "表空间大小",

FREE "表空间剩余大小",

(TOTAL - FREE) "表空间使用大小",

TOTAL / (1024 * 1024 * 1024) "表空间大小(G)",

FREE / (1024 * 1024 * 1024) "表空间剩余大小(G)",

(TOTAL - FREE) / (1024 * 1024 * 1024) "表空间使用大小(G)",

ROUND((TOTAL - FREE) / TOTAL, 4) * 100 "使用率 %"

FROM (SELECT TABLESPACE_NAME, SUM(BYTES) FREE

FROM DBA_FREE_SPACE

GROUP BY TABLESPACE_NAME) A,

(SELECT TABLESPACE_NAME, SUM(BYTES) TOTAL

FROM DBA_DATA_FILES

GROUP BY TABLESPACE_NAME) B

WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME;

单位换算如下所示

1G=1024MB

1M=1024KB

1K=1024Bytes

1M=11048576Bytes

1G=1024*11048576Bytes=11313741824Bytes

5.查看当前用户使用的表空间情况,其中username标识用户名,default_tablespace表示默认的表空间。

SELECT * FROM USER_USERS;

6.查看oracle下面所有的表空间,使用命令即可,呈现的信息包括表空间名称以及表空间的大小等。

SELECT * FROM DBA_TABLESPACES;