Oracle 查詢表空間及某個表的大小
阿新 • • 發佈:2018-12-16
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 "表空間大小", 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