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?