Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Thema wird beschrieben, wie Sie eine Datenbank mithilfe von Object in SQL Server 2014 mithilfe von SQL Server Management Studio oder Transact-SQL verkleinern.
Mit dem Verkleinern von Datendateien wird Platz gewonnen, indem Datenseiten vom Ende der Datei an nicht belegten Platz weiter am Dateianfang verschoben werden. Wenn genügend freier Speicherplatz am Ende der Datei erstellt wird, können Datenseiten am Ende der Datei zugeordnet und an das Dateisystem zurückgegeben werden.
Bevor Sie beginnen
Einschränkungen und Beschränkungen
Die Datenbank kann nicht kleiner als die Mindestgröße der Datenbank sein. Die Mindestgröße ist die Größe, die angegeben wird, wenn die Datenbank ursprünglich erstellt wurde, oder die letzte explizite Größe, die mithilfe eines Dateigrößenänderungsvorgangs festgelegt wurde, z. B. DBCC SHRINKFILE. Wenn beispielsweise eine Datenbank ursprünglich mit einer Größe von 10 MB erstellt und auf 100 MB vergrößert wurde, kann die kleinste Größe der Datenbank auf 10 MB reduziert werden, auch wenn alle Daten in der Datenbank gelöscht wurden.
Sie können eine Datenbank nicht verkleinern, während die Datenbank gesichert wird. Umgekehrt können Sie eine Datenbank nicht sichern, während ein Verkleinerungsvorgang für die Datenbank ausgeführt wird.
DBCC SHRINKDATABASE schlägt fehl, wenn ein speicheroptimierter xVelocity Columnstore-Index vorliegt. Die Arbeit wurde abgeschlossen, bevor der Spaltenspeicherindex auftritt, sodass die Datenbank möglicherweise kleiner ist. Um DBCC SHRINKDATABASE abzuschließen, deaktivieren Sie alle Columnstore-Indizes, bevor DBCC SHRINKDATABASE ausgeführt wird, und erstellen Sie dann die Spaltenspeicherindizes neu.
Empfehlungen
So zeigen Sie den aktuellen freien (nicht zugewiesenen) Speicherplatz in der Datenbank an. Weitere Informationen finden Sie unter Anzeigen von Daten- und Protokollrauminformationen für eine Datenbank
Berücksichtigen Sie die folgenden Informationen, wenn Sie eine Datenbank verkleinern möchten:
Ein Verkleinerungsvorgang ist am effektivsten nach einem Vorgang, der viel nicht genutzten Platz erzeugt, z. B. eine abgeschnittene Tabelle oder einen Drop-Table-Vorgang.
Die meisten Datenbanken erfordern verfügbaren freien Speicherplatz für die normalen alltäglichen Vorgänge. Wenn Sie eine Datenbank wiederholt verkleinern und feststellen, dass die Datenbankgröße erneut zunimmt, weist dies darauf hin, dass der Für reguläre Vorgänge verkleinerte Speicherplatz erforderlich ist. In diesen Fällen ist das wiederholte Verkleinern der Datenbank ein verschwendeter Vorgang.
Ein Verkleinerungsvorgang behält den Fragmentierungszustand der Indizes in der Datenbank nicht bei und erhöht im Allgemeinen die Fragmentierung auf einen Grad. Dies ist ein weiterer Grund, die Datenbank nicht wiederholt zu verkleinern.
Wenn Sie nicht über eine bestimmte Anforderung verfügen, legen Sie die AUTO_SHRINK Datenbankoption nicht auf "EIN" fest.
Sicherheit
Erlaubnisse
Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner .
Verwendung von SQL Server Management Studio
So verkleinern Sie eine Datenbank
Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz der SQL Server-Datenbank-Engine her und erweitern Sie dann diese Instanz.
Erweitern Sie Datenbanken, und klicken Sie dann mit der rechten Maustaste auf die Datenbank, die Sie verkleinern möchten.
Zeigen Sie auf Aufgaben, zeigen Sie auf Verkleinern, und klicken Sie dann auf Datenbank.
Datenbank
Zeigt den Namen der ausgewählten Datenbank an.Aktuell zugewiesener Speicherplatz
Zeigt den gesamten verwendeten und nicht verwendeten Speicherplatz für die ausgewählte Datenbank an.Verfügbarer freier Speicherplatz
Zeigt die Summe des freien Speicherplatzes in den Protokoll- und Datendateien der ausgewählten Datenbank an.Neuorganisieren von Dateien vor dem Freigeben des nicht verwendeten Speicherplatzes
Die Auswahl dieser Option entspricht der Ausführung von DBCC SHRINKDATABASE, die eine Zielprozentoption angibt. Das Löschen dieser Option entspricht der Ausführung von DBCC SHRINKDATABASE mit TRUNCATEONLY-Option. Diese Option ist standardmäßig nicht ausgewählt, wenn das Dialogfeld geöffnet wird. Wenn diese Option ausgewählt ist, muss der Benutzer eine Zielprozentoption angeben.Maximaler freier Speicherplatz in Dateien nach dem Verkleinern
Geben Sie den maximalen Prozentsatz des freien Speicherplatzes ein, der in den Datenbankdateien verbleiben soll, nachdem die Datenbank verkrumpft wurde. Zulässige Werte liegen zwischen 0 und 99.Klicke auf OK.
Verwenden von Transact-SQL
So verkleinern Sie eine Datenbank
Verbinden Sie sich mit der Datenbank-Engine.
Klicken Sie auf der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen. In diesem Beispiel wird DBCC SHRINKDATABASE verwendet, um die Größe der Daten und Protokolldateien in der
UserDBDatenbank zu verkleinern und prozentfreien Speicherplatz in der Datenbank zuzulassen10.
DBCC SHRINKDATABASE (UserDB, 10);
GO
Nachverfolgung: Nach dem Verkleinern einer Datenbank
Die zum Verkleinern einer Datei verschobenen Daten können an beliebigen freien Platz in der Datei verschoben werden. Dies führt zur Indexfragmentierung und kann die Leistung von Abfragen, die einen Bereich des Indexes suchen, verlangsamen. Zur Vermeidung von Fragmentierung sollten die Dateiindizes nach der Verkleinerung neu erstellt werden.
Siehe auch
Verkleinern einer Datei
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
DBCC (Transact-SQL)
DBCC SHRINKFILE (Transact-SQL)
Datenbankdateien und Dateigruppen