Vorsicht beim shrinken/verkleinern von SQL Server Datenbanken

Vorsicht beim shrinken/verkleinern von SQL Server Datenbanken

Verkleinern (Shrinken) von Datenbanken

Der Prozess des Verkleinerns einer Datenbank wird als Shrinken  bezeichnet. Hierzu wird der Befehl DBCC Shrink verwendet.

Dies ist in der Regel dann notwendig, wenn es auf der zugehörigen Festplatte wo die Datendateien liegen kein Platz mehr vorhanden ist, also Platz geschaffen werden muss.

Es wirkt sich negativ auf die Performance aus, wenn man eine Datenbank regelmäßig verkleinert diese aber dann erneut wieder anwächst. Der Prozess des ständigen vergrößerns einer Datenbank  beeinflusst negativ die Performance. Das SQL OS muss beim Betriebssystem nachfragen, ob genug Platz auf der Platte ist und anschließend die vergrößerte Datei initialisieren. Das kostet Zeit zumindest mehr als wenn SQL Server  dies nicht tun müsste.

Shrinken erzeugt Fragementierung, da SQL Server Daten eventuell versucht in freie Bereiche umzuspeichern. Demzufolge passiert es, das zusammenhängende Datenseiten mehr und mehr verteilt im Datenfile untergebracht werden. Fragmentierung beeinflusst die Lesevorgänge einer Datendatei vom Performance verhalten negativ.

AutoShrink

Ebenso gibt es in den Optionen einer Datenbank die Möglichkeit, die Autoshrink Option anzuschalten. Wie es der Name schon vermuten lässt, wird bei aktivierter Option versucht, die Datenbank alle 30 Minuten zu verkleinern. Dieses Intervall kann auch nicht verändert werden.

Hinweis:

Für Shrink Operationen in einer Datenbank sollte es gute Gründe geben. Allgemein kann gesagt werden, das eine Datenbank nur dann verkleinert werden sollte, wenn diese Dauerhaft in dieser Größe gehalten werden soll.


Brauchen Sie noch einen Xpertenrat?