如何查看Oracle用户所占的空间大小?(查看oracle用户大小)

在 Oracle 数据库开发过程中,有时可能需要了解某个用户的空间使用情况,以判断用户对资源的利用率,鉴别存储对象中是否有多余的对象,以及发现隐藏的大对象,这些都有助于耐心的分析调优,下面我们就来介绍如何查看 Oracle 用户所占的空间大小。

1、选择一个用户,先看其占用的数据库空间

用下列代码可以查看某个用户占用的数据库空间:

SELECT OWNER, SUM(BYTES)/1024/1024/1024 AS “TOTAL_SPACE_GB”

FROM SYS.DBA_SEGMENTS

WHERE OWNER = ‘用户名’

GROUP BY OWNER;

2、查看用户所有表空间的使用情况

我们可以通过如下的代码来查看某个用户所有表空间的使用情况:

SELECT

TBLSPACE_NAME

, TOTAL_SIZE_MB — 表空间总大小(MB)

, FREE_SIZE_MB — 表空间剩余空间(MB)

, USED_SIZE_MB — 表空间已使用空间(MB)

, (USED_SIZE_MB/TOTAL_SIZE_MB)*100 AS USED_PER

FROM

(

SELECT

FILE_NAME

, TABLESPACE_NAME

, SUM(BYTES)/1024/1024 AS TOTAL_SIZE_MB

, SUM(BYTES_FREE)/1024/1024 AS FREE_SIZE_MB

FROM DBA_FREE_SPACE

GROUP BY FILE_NAME, TABLESPACE_NAME

) AS A LEFT JOIN (

SELECT

TABLESPACE_NAME

, SUM(BYTES)/1024/1024 AS USED_SIZE_MB

FROM DBA_DATA_FILES

WHERE TABLESPACE_NAME IN

(

SELECT TABLESPACE_NAME

FROM DBA_SEGMENTS

WHERE OWNER = ‘用户名’

)

GROUP BY TABLESPACE_NAME

) AS B

ON A.TABLESPACE_NAME = B.TABLESPACE_NAME;

3、查看用户的所有存储对象

可以通过如下的代码来查看某个用户的所有存储对象:

SELECT

OBJECT_NAME, — 对象名称

SEGMENT_NAME, — 对象类型

SEGMENT_TYPE, — 段类型

BYTES/1024/1024 AS SIZE_MB — 大小(MB)

FROM DBA_SEGMENTS

WHERE OWNER = ‘用户名’

ORDER BY SIZE_MB DESC;

通过上述代码,我们可以迅速的查看 Oracle 用户占用的空间大小,熟练掌握以上代碼在 Oracle 开发中可以大大为我们节省时间,同时方便了数据库管理的工作。


数据运维技术 » 如何查看Oracle用户所占的空间大小?(查看oracle用户大小)