文章目录
- 一、Oracle查询表空间占用情况
- 二、Oracle查询'表'占用的空间
- 三、Oracle查询表空间使用情况
- 四、Oracle查询每张表占用空间
- 五、表空间大小
一、Oracle查询表空间占用情况
oracle日常工作中查看表占用空间大小是数据库管理中的基本操作:
SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表占用空间大小",
ROUND((total - free) / total * 100, 2) || '%' "已使用空间百分比"
FROM (SELECT tablespace_name, SUM(bytes) / 1024 / 1024 total
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 free
FROM dba_free_space
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY (total - free) DESC;
1、可以查看到数据库所有表空间的名称、容量大小、表空间剩余大小、表空间使用百分比等信息
2、表占用空间大小
二、Oracle查询’表’占用的空间
查询单个表占用的空间大小:
SELECT segment_name "表名",
segment_type "对象类型",
sum(bytes) / 1024 / 1024 "占用空间(MB)"
FROM dba_extents
WHERE segment_name = '表名'
GROUP BY segment_name, segment_type;
可以很直观的查询到“**单表”**占用表空间的大小信息
三、Oracle查询表空间使用情况
SELECT tablespace_name,
file_id,
bytes,
blocks,
maxbytes
FROM dba_data_files;
表空间包含的数据文件所占用的文件名、字节数、块数和最大字节数
四、Oracle查询每张表占用空间
SELECT owner,
segment_name,
segment_type,
sum(bytes) / 1024 / 1024 "占用空间(MB)"
FROM dba_segments
WHERE owner = 'sys'
GROUP BY owner, segment_name, segment_type;
五、表空间大小
SELECT tablespace_name,
SUM(bytes) / 1024 / 1024 "占用空间(MB)"
FROM dba_segments
WHERE tablespace_name = '表空间名'
GROUP BY tablespace_name;
可以查询到表空间的名称、