Find objects size in MBytes (TABLES, INDEXES, PARTITIONS etc)

Summary

Finding object size in Oracle database is very important and common.
Is it very useful to know the exact size occupied by the object at the tablespace.
The object size in the following scripts is in Mbytes. The scripts have been formatted to work very easily .

For example you can filter with tablespace_name, or owner, or size (for example more than 1GByte)

SELECT owner, segment_name, segment_type, partition_name, ROUND(bytes/(1024*1024),2) SIZE_MB, tablespace_name
FROM DBA_SEGMENTS
WHERE SEGMENT_TYPE IN (‘TABLE’, ‘TABLE PARTITION’, ‘TABLE SUBPARTITION’,
‘INDEX’, ‘INDEX PARTITION’, ‘INDEX SUBPARTITION’, ‘TEMPORARY’, ‘LOBINDEX’, ‘LOBSEGMENT’, ‘LOB PARTITION’)
–AND TABLESPACE_NAME LIKE ‘COSTE%’
–AND SEGMENT_NAME LIKE ‘P2010201%’
–AND partition_name LIKE ‘P20100201%’
–AND segment_type = ‘TABLE’
–AND OWNER = ‘TEST_POC’
–AND ROUND(bytes/(1024*1024),2) > 1000
ORDER BY bytes DESC;

You can group by tablespace, owner and segment type and see the total space occupied in MBytes
SELECT tablespace_name, owner, segment_type “Object Type”,
       COUNT(owner) “Number of Objects”,
       ROUND(SUM(bytes) / 1024 / 1024, 2) “Total Size in MB”
FROM   sys.dba_segments
WHERE  tablespace_name IN (‘TEST’)
GROUP BY tablespace_name, owner, segment_type
ORDER BY tablespace_name, owner, segment_type;

  • September 28, 2018 | 16 views
  • Comments