查询整个数据库剩余和使用的表空间大小使用情况
SELECT df.tablespace_name "表空间名",
totalspace "总空间M",
freespace "剩余空间M",
round((1 - freespace / totalspace) * 100, 2) "使用率%"
FROM (SELECT tablespace_name, round(SUM(bytes) / 1024 / 1024) totalspace
FROM dba_data_files
GROUP BY tablespace_name) df,
(SELECT tablespace_name, round(SUM(bytes) / 1024 / 1024) freespace
FROM dba_free_space
GROUP BY tablespace_name) fs
WHERE df.tablespace_name = fs.tablespace_name;
SELECT t.OWNER, t.segment_name, SUM(BYTES) / 1024 / 1024 "大小(MB)"
FROM dba_segments t
WHERE t.tablespace_name = 'USERS'
GROUP BY t.owner, t.segment_name
ORDER BY SUM(bytes) DESC;
SELECT segment_name, SUM(bytes) / 1024 / 1024 "大小(MB)"
FROM user_segments
WHERE segment_type = 'TABLE'
GROUP BY segment_name;
--CREATE INDEX IDX_TONY ON SCOTT.A(ID);
--查询指定的索引大小
SELECT segment_name, (bytes / 1024 / 1024) "大小(MB)"
FROM user_segments
WHERE segment_type = 'INDEX' AND SEGMENT_NAME='IDX_TONY'
--分区表
SELECT segment_name, SUM(bytes) / 1024 / 1024 "大小(MB)"
FROM user_segments
WHERE segment_type = 'TABLE PARTITION'
GROUP BY segment_name;
--指定用户
SELECT a.segment_name, (bytes / 1024 / 1024) "大小(MB)", a.segment_type
FROM dba_segments a
WHERE owner = 'SCOTT'
ORDER BY bytes DESC
SELECT SEGMENT_NAME,
SEGMENT_TYPE,
TABLESPACE_NAME,
EXTENTS,
BLOCKS,
BYTES / 1024 / 1024 MB
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE = 'TABLE';