Es war einmal wieder so weit:
Neulich kam eine Mail, dass der Tablespace dabei ist wegen Überfüllung die Arbeit einzustellen. Man sollte doch bitte prüfen, welche Tabellen von dem Tablespace gelöscht werden können.
Zunächst setzt dies natürlich voraus, dass man die Tabelle sys.dba_segments sehen darf.
Sofern man das darf, lässt man sich zunächst die Tabellen nach Relevanz, in diesem Falle die Größe, anzeigen und prüft mit gesundem Augenmaß, welche Tabelle gelöscht werden kann:
SELECT DISTINCT owner , segment_name , segment_type , tablespace_name , ROUND((BYTES/1024/1024), 2) AS table_size FROM dba_segments WHERE segment_type = ‚TABLE‘ AND tablespace_name = &TSNAME AND segment_name not like (‚BIN$%‘) GROUP BY owner , segment_name , segment_type , tablespace_name , ROUND((BYTES/1024/1024), 2) ORDER BY table_size DESC
Der Name des Tablespaces wird per Eingabe abgefragt. Das Statement filtert die Recycle Bin-Einträge heraus und setzt einen Filter auf den Segment-Typ Table.
Es zeigt das Schema, den Tabellennamen, sowie den Segment-Typen (in diesem Falle nur Table) und den Tablespacenamen, absteigend sortiert der Größe nach an.
Die Größe der Tabellen wird dabei in Megabytes angegeben.
Bildnachweise:
Titelbild: ©Fotolia_60505744_S-ci