Damit Sie die Größe (das Volumen) Ihrer Tabellen ausrechnen können, nutzen Sie folgenden SQL Befehl:
SELECT TableName, TABLESPACE_NAME, sum(mb) FROM ( SELECT nvl2(l.segment_name, l.table_name, s.segment_name) TableName, s.TABLESPACE_NAME, bytes / 1024 / 1024 mb FROM user_segments s, user_lobs l WHERE s.segment_name = l.segment_name(+) AND ROUND(bytes / 1024 / 1024) > 0 ORDER BY 1, 2) GROUP BY TableName, TABLESPACE_NAME ORDER BY 1;
Ihnen werden alle Tabellen mit einer Größe von mehr als 0 MB angezeigt. Leere Tabellen werden nicht angezeigt.
Um die Berechnung in GB, KB oder Bytes zu erhalten, ändern Sie bitte die Division im zweiten SELECT Statement entsprechend ab.
Hallo,
danke, dass ich privat den code kopieren darf und ein sarkastisches Danke dafür, dass ich dazu die ganze Seite kopieren muss, weil ihr das markieren von Text unterbunden habt, sehr nutzerfreundlich von euch!..
Hallo X,
vielen Dank für den Hinweis. Ein Plugin hatte diese Funktion unbemerkt und ungewollt automatisch aktiviert. Wir haben das Plugin jetzt besser konfiguriert und das Markieren von Text ist wieder möglich.
Vielen Dank für das Skript. Funktioniert auf Anhieb. Auch markieren / kopieren funktioniert.
Danke für Ihren Kommentar und Dank.
Falls es mal nicht auf einen einzelnen Nutzer beschränkt sein soll (muss als SYSTEM ausgeführt werden):
SELECT owner, TableName, TABLESPACE_NAME, sum(mb)
FROM (
SELECT s.owner, nvl2(l.segment_name, l.table_name, s.segment_name) TableName,
s.TABLESPACE_NAME, bytes / 1024 / 1024 mb
FROM dba_segments s, dba_lobs l
WHERE s.segment_name = l.segment_name(+) AND s.owner = l.owner(+)
AND ROUND(bytes / 1024 / 1024) > 0
ORDER BY 1, 2)
GROUP BY owner, TableName, TABLESPACE_NAME
ORDER BY 4 DESC;