文章目录
- 一、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 totalFROM dba_data_filesGROUP BY tablespace_name) a,(SELECT tablespace_name, SUM(bytes) / 1024 / 1024 freeFROM dba_free_spaceGROUP BY tablespace_name) bWHERE a.tablespace_name = b.tablespace_nameORDER BY (total - free) DESC;
1、可以查看到数据库所有表空间的名称、容量大小、表空间剩余大小、表空间使用百分比等信息
2、表占用空间大小
二、Oracle查询’表’占用的空间
查询单个表占用的空间大小:
SELECT segment_name "表名",segment_type "对象类型",sum(bytes) / 1024 / 1024 "占用空间(MB)"FROM dba_extentsWHERE segment_name = '表名'GROUP BY segment_name, segment_type;
可以很直观的查询到“**单表”**占用表空间的大小信息
三、Oracle查询表空间使用情况
SELECT tablespace_name,file_id,bytes,blocks,maxbytesFROM dba_data_files;
表空间包含的数据文件所占用的文件名、字节数、块数和最大字节数
四、Oracle查询每张表占用空间
SELECT owner,segment_name,segment_type,sum(bytes) / 1024 / 1024 "占用空间(MB)"FROM dba_segmentsWHERE owner = 'sys'GROUP BY owner, segment_name, segment_type;
五、表空间大小
SELECT tablespace_name,SUM(bytes) / 1024 / 1024 "占用空间(MB)"FROM dba_segmentsWHERE tablespace_name = '表空间名'GROUP BY tablespace_name;
可以查询到表空间的名称、