--某张表的空间使用情况
TABLE_USED_SPACE() 来查询特定某张表的空间使用情况,具体语句如下:
SELECT TABLE_USED_SPACE('SYSDBA','TEST')*(PAGE/1024/1024) AS TABLE_USE_SPACE_MB;
--用户表大小、表注释、表空间
SELECT A.OWNER AS "模式",A.SEGMENT_NAME AS "表名",A.BYTES/1024/1024 AS "大小(M)",A.TABLESPACE_NAME AS "所属表空间",B.COMMENTS AS "表注释" FROM DBA_SEGMENTS A,DBA_TAB_COMMENTS B WHERE A.OWNER=B.OWNER AND A.SEGMENT_NAME=B.TABLE_NAME AND A.OWNER='SYSDBA' ORDER BY SEGMENT_NAME ASC;
----查看用户所有表空间使用情况
select a.file_id "FileNo",
a.tablespace_name "Tablespace_name",
a.bytes "Bytes",
a.bytes - sum(nvl(b.bytes, 0)) "Used",
sum(nvl(b.bytes, 0)) "Free",
sum(nvl(b.bytes, 0)) / a.bytes * 100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id = b.file_id(+)
group by a.tablespace_name, a.file_id, a.bytes
order by a.tablespace_name;
-----数据文件信息
SELECT SF_GET_PARA_STRING_VALUE(1,'INSTANCE_NAME') AS 实例名,A.NAME AS 表空间名,B.PATH AS 数据文件路径,(B.TOTAL_SIZE*PAGE/1024/1024)AS 文件大小MB,(B.FREE_SIZE*PAGE/1024/1024)AS 剩余大小MB,(CAST((B.TOTAL_SIZE-B.FREE_SIZE)*100/B.TOTAL_SIZE AS NUMERIC(2,0))||'%') AS 使用率,DECODE(B.AUTO_EXTEND,'0','关闭','1','打开') AS 自动扩展,B.NEXT_SIZE AS 扩展大小MB FROM V$TABLESPACE A,V$DATAFILE B WHERE A.ID = B.GROUP_ID;
常用统计sql: