Verkleinern einer Datei

 

In diesem Thema wird beschrieben, wie eine Daten- oder Protokolldatei in SQL Server 2016 mithilfe von SQL Server Management Studio oder Transact-SQLverkleinert wird.

Mit dem Verkleinern von Datendateien wird Platz gewonnen, indem Datenseiten vom Ende der Datei an nicht belegten Platz weiter am Dateianfang verschoben werden. Wurde am Ende der Datei ausreichend Platz geschaffen, kann die Zuordnung der Datenseiten am Ende der Datei aufgehoben und die Datenseiten können ins Dateisystem zurückgegeben werden.

In diesem Thema

Einschränkungen

  • Die primäre Datendatei kann nicht kleiner als die Größe der primären Datei in der model-Datenbank werden.

Empfehlungen

  • 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.

Sicherheit

Berechtigungen

Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner.

So verkleinern Sie eine Daten- oder Protokolldatei

  1. Stellen Sie im Objekt-Explorer eine Verbindung mit einer Instanz von SQL Server-Datenbankmodul her, und erweitern Sie dann diese Instanz.

  2. Erweitern Sie Datenbanken, und klicken Sie dann mit der rechten Maustaste auf die Datenbank, die Sie verkleinern möchten.

  3. Zeigen Sie auf Tasks, zeigen Sie auf Verkleinern, und klicken Sie dann auf Dateien.

    Datenbank
    Zeigt den Namen der ausgewählten Datenbank an.

    Dateityp
    Wählen Sie den Dateityp für die Datei aus. Die verfügbaren Auswahlmöglichkeiten für den Dateityp sind Daten und Protokoll . Die Standardauswahl ist Daten. Bei der Auswahl eines anderen Dateigruppentyps wird die Auswahl in den anderen Feldern entsprechend geändert.

    Dateigruppe
    Wählen Sie eine Dateigruppe aus der Liste der Dateigruppen aus, die dem oben genannten Dateityp zugewiesen sind. Bei der Auswahl einer anderen Dateigruppe wird die Auswahl in den anderen Feldern entsprechend geändert.

    Dateiname
    Wählen Sie eine Datei aus der Liste der verfügbaren Dateien aus, die der ausgewählten Dateigruppe und dem Dateityp entspricht.

    Speicherort
    Zeigt den vollständigen Pfad zur aktuell ausgewählten Datei an. Dieser Pfad kann nicht bearbeitet, aber in die Zwischenablage kopiert werden.

    Aktuell zugeordneter Speicherplatz
    Zeigt bei Datendateien den aktuell zugeordneten Speicherplatz an. Bei Protokolldateien wird der aktuell zugeordnete Speicherplatz angezeigt, der auf der Basis der Ausgabe von DBCC SQLPERF (LOGSPACE) berechnet wurde.

    Verfügbarer freier Speicherplatz
    Zeigt bei Datendateien den aktuell verfügbaren freien Speicherplatz an, der auf der Basis der Ausgabe von DBCC SHOWFILESTATS (fileid) berechnet wurde. Bei Protokolldateien wird der aktuell verfügbare freie Speicherplatz angezeigt, der auf der Basis der Ausgabe von DBCC SQLPERF (LOGSPACE) berechnet wurde.

    Nicht verwendeten Speicherplatz freigeben
    Bewirkt, dass ungenutzter Speicherplatz in den Dateien an das Betriebssystem freigegeben und die Datei auf die zuletzt zugeordnete Größe verkleinert wird, wodurch die Dateigröße ohne Verschieben von Daten reduziert wird. Es wird nicht versucht, verfügbaren Seiten Zeilen erneut zuzuordnen.

    Seiten vor dem Freigeben von nicht verwendetem Speicherplatz neu organisieren
    Entspricht dem Ausführen von DBCC SHRINKFILE zur Angabe der Zieldateigröße. Wenn diese Option ausgewählt ist, muss der Benutzer eine Zieldateigröße im Feld Datei verkleinern auf angeben.

    Datei verkleinern auf
    Gibt die Zieldateigröße für den Verkleinerungsvorgang an. Die Größe kann nicht kleiner als der aktuell zugeordnete Speicherplatz und nicht größer als die Summe der Blöcke sein, die der Datei zugeordnet sind. Wenn ein Wert außerhalb der Grenzen eingegeben wird, wird der entsprechend nähere Grenzwert wiederhergestellt, sobald der Fokus geändert oder auf eine der Schaltflächen auf der Symbolleiste geklickt wird.

    Datei durch Migrieren ihrer Daten zu anderen Dateien in der gleichen Dateigruppe leeren
    Migriert alle Daten aus der angegebenen Datei. Diese Option ermöglicht das Löschen der Datei mit der ALTER DATABASE-Anweisung. Sie entspricht dem Ausführen von DBCC SHRINKFILE mit der Option EMPTYFILE.

  4. Wählen Sie den Dateityp und den Dateinamen aus.

  5. Aktivieren Sie optional das Kontrollkästchen Nicht verwendeten Speicherplatz freigeben .

    Wenn diese Option ausgewählt wird, wird ungenutzter Speicherplatz in der Datei für das Betriebssystem freigegeben und die Datei auf den zuletzt zugeordneten Block verkleinert. Durch diesen Vorgang wird die Dateigröße ohne Verschieben von Daten reduziert.

  6. Aktivieren Sie optional das Kontrollkästchen Dateien vor dem Freigeben von nicht belegtem Speicherplatz neu organisieren . Wenn dieses Kontrollkästchen aktiviert ist, muss der Wert Datei verkleinern auf angegeben werden. Standardmäßig ist diese Option deaktiviert.

    Wenn diese Option ausgewählt wird, wird ungenutzter Speicherplatz in der Datei für das Betriebssystem freigegeben, und es wird versucht, Zeilen in nicht zugeordnete Seiten zu verschieben.

  7. Geben Sie optional den maximalen Prozentsatz an freiem Speicherplatz ein, der in der Datenbankdatei verbleiben soll, nachdem die Datenbank verkleinert wurde. Der zulässige Wert liegt zwischen 0 und 99. Diese Option ist nur verfügbar, wenn Dateien vor dem Freigeben von nicht belegtem Speicherplatz neu organisieren aktiviert ist.

  8. Aktivieren Sie optional das Kontrollkästchen Datei durch Migrieren ihrer Daten zu anderen Dateien in der gleichen Dateigruppe leeren .

    Wenn Sie diese Option aktivieren, werden alle Daten aus der angegebenen Datei in andere Dateien in der Dateigruppe verschoben. Die leere Datei kann anschließend gelöscht werden. Diese Option entspricht dem Ausführen von DBCC SHRINKFILE mit der EMPTYFILE-Option.

  9. Klicken Sie auf OK.

So verkleinern Sie eine Daten- oder Protokolldatei

  1. Stellen Sie eine Verbindung mit dem Datenbankmodulher.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen. In diesem Beispiel wird DBCC SHRINKFILE verwendet, um die Größe einer Datendatei mit dem Namen DataFile1 in der Datenbank UserDB auf 7 MB zu verkleinern.

USE UserDB;
GO
DBCC SHRINKFILE (DataFile1, 7);
GO

DBCC SHRINKDATABASE (Transact-SQL)
Verkleinern einer Datenbank
Löschen von Daten- oder Protokolldateien aus einer Datenbank
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)

Community-Beiträge

HINZUFÜGEN
Anzeigen: