Thanks,Connor!
VIEW
dba_segments have actually included more info(eg tables|indexes|rollback...) than
dba_extents,such as
SYS@ysyktest> set linesize 200
SYS@ysyktest> set pagesize 200
SYS@ysyktest> col segment_type for a25
SYS@ysyktest> select distinct segment_type from dba_segments order by 1;
SEGMENT_TYPE
-------------------------
CLUSTER
INDEX
INDEX PARTITION
LOB PARTITION
LOBINDEX
LOBSEGMENT
NESTED TABLE
ROLLBACK
TABLE
TABLE PARTITION
TABLE SUBPARTITION
TYPE2 UNDO
12 rows selected.
According to your suggestions,I have compared to dba_segments and dba_extents,such as,
SYS@ysyktest> set linesize 300
SYS@ysyktest> set pagesize 300
SYS@ysyktest> col tablespace_name for a25
SYS@ysyktest> col used_gb for 99999.99
SYS@ysyktest> select a.tablespace_name,a.used_gb segments_gb,b.used_gb extents_gb,a.used_gb - b.used_gb minus_gb from
2 (select tablespace_name,round(sum(bytes)/(1024*1024*1024),2) used_gb from dba_segments where tablespace_name = 'SYSTEM' group by tablespace_name) a,
3 (select tablespace_name,round(sum(bytes)/(1024*1024*1024),2) used_gb from dba_extents where tablespace_name = 'SYSTEM' group by tablespace_name) b
4 where a.tablespace_name = b.tablespace_name;
TABLESPACE_NAME SEGMENTS_GB EXTENTS_GB MINUS_GB
------------------------- ----------- ---------- ----------
SYSTEM .75 .75 0
By the way,when I use the keywords '
MINUS' to test it,as a result,it has no rows to return.such as,
SYS@ysyktest> select tablespace_name,round(sum(bytes)/(1024*1024*1024),2) used_gb from dba_segments where tablespace_name='SYSTEM' group by tablespace_name
2 minus
3 select tablespace_name,round(sum(bytes)/(1024*1024*1024),2) used_gb from dba_extents where tablespace_name='SYSTEM' group by tablespace_name;
no rows selected
SYS@ysyktest> set linesize 300
SYS@ysyktest> set pagesize 300
SYS@ysyktest> col tablespace_name for a25
SYS@ysyktest> col used_gb for 99999.99
SYS@ysyktest> select tablespace_name,round(sum(bytes)/(1024*1024*1024),2) used_gb from dba_segments where tablespace_name='SYSTEM' group by tablespace_name;
TABLESPACE_NAME USED_GB
------------------------- ---------
SYSTEM .75
SYS@ysyktest> select tablespace_name,round(sum(bytes)/(1024*1024*1024),2) used_gb from dba_extents where tablespace_name='SYSTEM' group by tablespace_name;
TABLESPACE_NAME USED_GB
------------------------- ---------
SYSTEM .75
Best Regards
Quanwen Zhao