SQL Server: Shrink Database
Aufgabe: Datenbank verkleinern oder komprimieren
Im Laufe einer Zeit werden Datenbanken immer größer. Das liegt auch daran, dass Daten die gelöscht werden, nur intern ausgeblendet werden.
Deshalb empfiehlt es sich oft, von Zeit zu Zeit die Datenbank zu komprimieren.
Wie viel bringt das?
Fazit:
Shrink Database reicht im Normalfall vollkommen aus.
Eine nachfolgende Shrink Files bringt keine Verbesserung.
Ausgangssituation:
Die angeschlossene und aktive SQL Server Datenbank Rue25.mdf hat eine Größe von 72 MB zur Laufzeit und eine Log-Datei von 427 MB
Wenn man ein reguläres Backup erstellt, dann wird die Datenbank mit 72 MB als .bak Datei gespeichert.
Das entspricht der aktuellen, aktiven .mdf Datenbank ohne Log-Einträge.
Ein Blick in die Datenbank-Eigenschaften unter dem Microsoft SQL Server Management Studio zeigt eine Database Size von 488 MB an.
Hier wird die laufende Datenbank plus die Log-File zusammengezählt.
Shrink Database
Die Funktion: Kompression der Datenbank teilt sich in zwei Teilfunktionen auf.
- Shrink Database
Shrink Database komprimiert die gesamte Datenbank und alle Dateien.
- Shrink Files
Mit Shrink Files kann man einzelne Dateien komprimieren, wenn die Datenbank in mehrere Files aufgeteilt ist.
Dabei kann die Datenbank als logische interne Struktur optimiert werden und auch die Dateien selbst neu organisiert werden.
Dialog: Shrink Database
Shrink Database komprimiert alle Dateien.
Zur Auswahl steht, ob man die Option: Reorganize files before releasing unused space.
The size of a databaseis reduced by collectively shrinking the database files, releasing unused space.
To shrink individual database files, use Shrink files.
Folge:
Danach ist die .ldf geschrumpft von 488 MB auf 1 MB.
Die mdf-Datei ist fast gleich geblieben.
Shrink Database Files
Bringt es einen zusätzlichen Effekt, wenn man die Dateien zusätzlich komprimiert?
Fazit: nein.
Dialog: Shrink File
Zur Auswahl steht, ob man die Optionen:
- Release unused space
oder
- Reorganize pages before releasing unused space
auswählt.
Beide Optionen haben bei 1-File Datenbanken keine Auswirkung.
Ergebnis nach Shrink File
Die Dateigrößen sind gleich groß wie mit dem zuvor ausgeführten Shrink Database