如何查看oracle中某个用户占用表空间大小情况

如何查看oracle中某个用户占用表空间大小情况,第1张

可以通过以下语句查看所有的表空间大小

sql:SELECT CTABLESPACE_NAME,ABYTES/1048576 MEGS_TOTAL,(ABYTES-BBYTES)/1048576 MEGS_USED,

BBYTES/1048576 MEGS_FREE,(ABYTES-BBYTES)/ABYTES 100 PCT_USED, BBYTES/ABYTES 100 PCT_FREE

FROM (SELECT TABLESPACE_NAME,SUM(ABYTES) BYTES,MIN(ABYTES) MINBYTES,MAX(ABYTES) MAXBYTES FROM SYSDBA_DATA_FILES A

GROUP BY TABLESPACE_NAME) A,(SELECT ATABLESPACE_NAME,NVL(SUM(BBYTES),0) BYTES

FROM SYSDBA_DATA_FILES A,SYSDBA_FREE_SPACE B WHERE ATABLESPACE_NAME = BTABLESPACE_NAME (+) AND AFILE_ID = BFILE_ID (+)

GROUP BY ATABLESPACE_NAME) B,SYSDBA_TABLESPACES C

WHERE ATABLESPACE_NAME = BTABLESPACE_NAME(+) AND ATABLESPACE_NAME = CTABLESPACE_NAME ORDER BY 6;

备注:如果是查询特定的可以在外面在嵌套一层select from(sql)t1 where t1TABLESPACE_NAME='表空间名称'的形式即可。

1、查看Oracle数据库中数据文件信息的工具方法:使用上面介绍过的方法登录oracle enterprise manager console工具,选择‘存储’ 数据文件,会看到如下的界面,该界面显示了数据文件名称,表空间名称,以兆为单位的数据文件大小,已使用的数据文件大小及数据文件利用率。

每张表都是作为“段”来存储的,可以通过user_segments视图查看其相应信息。

段(segments)的定义:如果创建一个堆组织表,则该表就是一个段。

sql:SELECT segment_name AS TABLENAME,BYTES FROM user_segments WHERE segment_name='表名'。

解释:

segment_name 就是要查询的表名(大写),BYTES 为表存储所占用的字节数。本sql的意思就是查询出表名和表所占的存储空间大小。

1 全部表空间的大小

select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

TABLESPACE_NAME      SUM(BYTES)/1024/1024

-------------------- --------------------

UNDOTBS1                   65

SYSAUX                      520

USERS                    6

SYSTEM                      680

EXAMPLE                   100

2 空闲表空间大小

select tablespace_name, sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

TABLESPACE_NAME      SUM(BYTES)/1024/1024

-------------------- --------------------

SYSAUX                       34

UNDOTBS1                1

USERS                    1

SYSTEM                    4

EXAMPLE                    22

3 已使用空间可以这样计算

select atablespace_name, total, free, total-free as used from

(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,

(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b

where atablespace_name = btablespace_name;

TABLESPACE_NAME       TOTAL       FREE     USED

-------------------- ---------- ---------- ----------

SYSAUX                520    336875   4863125

UNDOTBS1             65      1       64

USERS               625       125        5

SYSTEM                680        35    6765

EXAMPLE             100    215625    784375

更具体的sql语句:

select atablespace_name, total, free, total-free as used, substr(free/total 100, 1, 5) as "FREE%", substr((total - free)/total 100, 1, 5) as "USED%" from 

(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a, 

(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b

where atablespace_name = btablespace_name

order by atablespace_name;

select

bfile_name 物理文件名,

btablespace_name 表空间,

bbytes/1024/1024 大小M,

(bbytes-sum(nvl(abytes,0)))/1024/1024 已使用M,

substr((bbytes-sum(nvl(abytes,0)))/(bbytes)100,1,5) 利用率

from dba_free_space a,dba_data_files b

where afile_id=bfile_id

group by btablespace_name,bfile_name,bbytes

order by btablespace_name

该语句通过查询dba_free_space,dba_data_files,dba_tablespaces这三个数据字典表,得到了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。dba_free_space表描述了表空间的空闲大小,dba_data_files表描述了数据库中的数据文件,dba_tablespaces表描述了数据库中的表空间。

上面语句中from子句后有三个select语句,每个select语句相当于一个视图,视图的名称分别为a、b、c,通过它们之间的关联关系,我们得到了表空间的相关信息。

怎么查询oracle表空间总大小

查看所有表空间使用情况 :

select

bfile_id 文件ID号,

btablespace_name 表空间名,

bbytes/1024/1024||'M'字节数,

(bbytes-sum(nvl(abytes,0)))/1024/1024||'M' 已使用,

sum(nvl(abytes,0))/1024/1024||'M' 剩余空间,

100 - sum(nvl(abytes,0))/(bbytes)100 占用百分比

以上就是关于如何查看oracle中某个用户占用表空间大小情况全部的内容,包括:如何查看oracle中某个用户占用表空间大小情况、如何查询Oracle表空间和数据文件信息、如何查看ORACLE表空间里面某一张表所占用的内存大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9877897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存