Microsoft SQL Server alle Datenbanken (Datenbankdateien) verkleinern

Problem

Einige Datenbanken (=Datenbankdateien) in einem SQL-Server sind extrem gewachsen und belegen nach Leerung nun immernoch viel physikalischen Speicher. Man kann natürlich jede Datenbank im Management Studio einzeln anklicken und unter „Tasks“ auf „Verkleinern“ klicken oder ein DBCC-Kommando in jeder Datenbanka ausführen, bei vielen Datenbänken in einer Instanz dauert das aber extrem lange.

Lösung

EXEC sp_MSForEachDB 'DBCC SHRINKDATABASE (''?'' , 0)'

Achtung! Es ist fast nie sinnvoll, Datenbankdateien einfach-mal-so zu verkleinern. Indizes und die Datenbank selber werden dann bei Aktivität in der Regel stark fragmentiert, was wahnsinnig auf die Performance durchschlägt. Für eine Virtualisierung, verschieben, eine Sicherungskalkulation oder bei Vorgängen die geplant viele Daten entsorgen, kann das aber auch durchaus hilfreich sein. Im Zweifel vorher einen (fähigen) DBA fragen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.