Die Wanne ist voll – Shrink Table in Oracle Datenbanken
Ich gebe es zu, manchmal sind die Regeln einer Oracle DB verwirrend. Darunter fällt wohl auch die Regel der High Water Mark und der Extent-Allokierung. Es klingt nicht gerade einleuchtend, dass gelöschte Datensätze den vorher benötigten Platz in einem Tablespace nicht wieder freigeben. Das liegt daran, dass ein Segment (wie eine Tabelle) bei Bedarf sogenannte Extents in einem Tablespace allokiert. Ein Extent ist dabei nichts anderes als eine bestimmte Menge an Datenbankblöcken. Bei dieser Allokation wird die High Water Mark des Segments nach oben gerückt. Wenn wir nun Datensätze aus einer Tabelle löschen, werden diese allokierten Extents nicht wieder an den Tablespace zurückgegeben. Das heißt also, es wird kein Freiplatz durch das Löschen von Datensätzen erzeugt.
Read More »Die Wanne ist voll – Shrink Table in Oracle Datenbanken