Oracle 查询表空间及某个表的大小

1、查询某个表的大小 (需更改“你要查询的表名”)

--注,仅表数据的大小,不含索引、分区、LOB类型

select Segment_Name "表名",sum(bytes)/1024/1024 "表大小(M)" 
From User_Extents 
Group By Segment_Name 
having Segment_Name='你要查询的表名'; 
--注,仅表数据的大小,不含索引、分区、LOB类型

 

2、查看某个用户下各个表所占的空间(需更改“你要查询的用户”)

select OWNER "用户名", t.segment_name "表名", t.segment_type "表类型", sum(t.bytes / 1024 / 1024) "表大小M"
from dba_segments t
where t.owner = '你要查询的用户'
and t.segment_type='TABLE'
group by OWNER, t.segment_name, t.segment_type
order by "表大小M" desc;

 

3、查看当前数据库所有用户下 所有表所占的空间

 SELECT OWNER as "用户名", sum(BYTES) / 1024 / 1024 as "所有表的大小(MB)"
  FROM DBA_SEGMENTS
 WHERE SEGMENT_NAME in (select t2.OBJECT_NAME
                          from dba_objects t2
                         where t2.OBJECT_TYPE = 'TABLE')
 group by OWNER order by 2 desc;

 

4、查询某用户下所有表的记录总数(需更改“你要查询的用户”)

SELECT SUM(num_rows) "记录总条数" FROM SYS.ALL_TABLES T WHERE T.OWNER = '你要查询的用户';

 

5、查看某用户下所有表的各自的记录条数:

SELECT T.TABLE_NAME "表名",T.NUM_ROWS "记录条数" FROM USER_TABLES T

 

6、查看当前用户下所有表的表名所属表空间:

select table_name "表名",tablespace_name "所属表空间" from user_tables;

 

7、查看当前用户下所有表空间的使用情况:

SELECT a.tablespace_name "表空间名", 
total / (1024 * 1024) "表空间大小(M)", 
free / (1024 * 1024) "表空间剩余大小(M)", 
(total - free) / (1024 * 1024) "表空间使用大小(M)", 
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 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值