1、如下SQL用于查询Oracle用户表空间大小及使用情况
select @b@ a.TABLESPACE_NAME 表空间用户名, @b@ a.total 总量,@b@ nvl(b.used,0) USED 已使用, @b@ nvl((b.used/a.total)*100,0) 利用率 @b@from @b@ (select TABLESPACE_NAME, @b@ sum(bytes)/(1024*1024) total @b@ from sys.dba_data_files @b@ group by TABLESPACE_NAME) a, @b@@b@ (select TABLESPACE_NAME,bytes/(1024*1024) used @b@ from sys.SM$TS_USED) b @b@where @b@ a.TABLESPACE_NAME=b.TABLESPACE_NAME(+);
2、如下查询表空间对应数据文件大小SQL
select @b@ substr(a.file#,1,2) "#", @b@ substr(a.name,1,30) "Name", @b@ a.status, @b@ a.bytes, @b@ b.phyrds, @b@ b.phywrts @b@from v$datafile a, v$filestat b @b@where a.file# = b.file#;
3、查看用户表空间配额 - BYTES字段表示用户已经使用的空间;MAX_BYTES如果为-1表示没有限制,其他值表示限制配额
select * from DBA_TS_QUOTAS@b@ order by Tablespace_Name, Username;