# Speicherwachstum und Routinewartung

> Warum eine Datenbank wächst, obwohl nichts hinzukommt: Aufräumvorgänge, veraltete Versionen, Fragmentierung und die Frage, wann Wartung mehr schadet als nützt.

Track: [Datenbankadministration für Sysadmins](https://physar.tech/learn/database-administration-basics)  
Kanonische Fassung: https://physar.tech/learn/database-administration-basics/storage-growth-maintenance  
Stand: 2026-07-30  
Interaktiver Teil: 3 Checks (nur im Browser)

## Gelöscht ist nicht weg

### Betriebsfrage

Eine Tabelle, aus der ebenso viel gelöscht wie eingefügt wird, wächst trotzdem. Das ist kein Fehler, sondern die Folge davon, wie Datenbanken gleichzeitige Zugriffe ermöglichen — und es erklärt die meisten unerwarteten Platzprobleme.

### Mentales Modell

Ändern → Alte Version behalten → Freigeben → Platz wiederverwenden

Um Lesern eine konsistente Sicht zu geben, bleiben ältere Zeilenversionen erhalten, solange irgendeine Transaktion sie noch sehen könnte. Erst danach kann ein Aufräumvorgang den Platz **zur Wiederverwendung** freigeben — an das Betriebssystem zurück geht er meist nicht.

### Was Aufräumen blockiert

- Eine sehr lange offene Transaktion hält alte Versionen fest — auch solche, die sie nie lesen wird.
- Eine unterbrochene Replikationsverbindung kann denselben Effekt haben.
- Ist der Aufräumvorgang dauerhaft langsamer als die Änderungsrate, wächst der Rückstand monoton.

> **Diagnosefrage:** Bevor Platz beschafft wird: Gibt es eine offene Transaktion oder einen hängenden Verbraucher, der das Aufräumen blockiert? Das ist häufiger die Ursache als echtes Datenwachstum.

### Reorganisation

|  |  |
| --- | --- |
| Regelmäßiges Aufräumen | Läuft nebenher und hält den Zustand stabil. Es gibt Platz zur Wiederverwendung frei. |
| Vollständige Reorganisation | Gibt Platz an das Betriebssystem zurück, sperrt dabei aber typischerweise die Tabelle. Auf großen Tabellen ist das ein Ausfall. |
| Statistiken | Sind eine eigene Aufgabe. Sie beeinflussen die Planwahl, nicht den Platzbedarf. |

### Route

> **Transfer:** Die Checks behandeln die Ursachensuche bei unerwartetem Wachstum, die Abwägung einer vollständigen Reorganisation und die Priorisierung von Wartungsarbeiten.

## Quellen

- postgresql.org/docs/current/routine-vacuuming.html — https://www.postgresql.org/docs/current/routine-vacuuming.html
- postgresql.org/docs/current/transaction-iso.html — https://www.postgresql.org/docs/current/transaction-iso.html
- postgresql.org/docs/current/continuous-archiving.html — https://www.postgresql.org/docs/current/continuous-archiving.html
