Oracle’da veri tabanındaki tabloların MB cinsinden ne kadar kapladığını görmem gerekiyor.
Elinde hazır bir script olan varsa verebilir mi?
Oracle’da veri tabanındaki tabloların MB cinsinden ne kadar kapladığını görmem gerekiyor.
Elinde hazır bir script olan varsa verebilir mi?
// Comments are closed.
SELECT owner, table_name, ROUND(sum(bytes)/1024/1024/1024, 2) GB
FROM
(SELECT segment_name table_name, owner, bytes
FROM dba_segments
WHERE segment_type IN (‘TABLE’, ‘TABLE PARTITION’, ‘TABLE SUBPARTITION’)
UNION ALL
SELECT i.table_name, i.owner, s.bytes
FROM dba_indexes i, dba_segments s
WHERE s.segment_name = i.index_name
AND s.owner = i.owner
AND s.segment_type IN (‘INDEX’, ‘INDEX PARTITION’, ‘INDEX SUBPARTITION’)
UNION ALL
SELECT l.table_name, l.owner, s.bytes
FROM dba_lobs l, dba_segments s
WHERE s.segment_name = l.segment_name
and s.owner = l.owner
AND s.segment_type in (‘LOBSEGMENT’, ‘LOB PARTITION’, ‘LOB SUBPARTITION’)
UNION ALL
SELECT l.table_name, l.owner, s.bytes
FROM dba_lobs l, dba_segments s
WHERE s.segment_name = l.index_name
AND s.owner = l.owner
AND s.segment_type = ‘LOBINDEX’)
where owner = :owner
GROUP BY table_name, owner
–HAVING SUM(bytes)/1024/1024 > 1000 /* Ignore really small tables */
order by sum(bytes) desc