如何查看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 开发中可以大大为我们节省时间,同时方便了数据库管理的工作。