Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So reduzieren Sie die Größe einer Datendatei in SQL Server (T-SQL)

Wenn Sie in SQL Server Transact-SQL verwenden, erfordert das Reduzieren der Größe einer Datendatei eine andere Syntax als das Erhöhen. Um eine Dateigröße mit T-SQL zu reduzieren, verwenden Sie DBCC SHRINKFILE Befehl und geben Sie den Namen der Datendatei zusammen mit der Größe an, auf die Sie sie reduzieren möchten.

Nachfolgend finden Sie Beispiele für die Verringerung der Dateigröße einer Datendatei in SQL Server mithilfe von T-SQL.

Einfaches Beispiel

Hier ist ein einfaches Beispiel für die Reduzierung der Größe einer Datendatei mit T-SQL:

USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2, 5);
GO

Das ist wahrscheinlich ziemlich selbsterklärend. Zuerst wechseln wir zu der Datenbank, deren Datendatei wir ändern wollen. Wir verwenden dann DBCC SHRINKFILE um anzugeben, auf welche Datendatei und auf welche Dateigröße sie reduziert werden soll. Dies ist in MB, daher wird es in unserem Beispiel auf 5 MB reduziert.

Auf die Standarddateigröße reduzieren

Wenn Sie keine Dateigröße angeben, wird die Datei auf ihre Standardgröße reduziert. Die Standardgröße ist die Größe, die beim Erstellen der Datei angegeben wurde.

Beispiel:

USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2);
GO

Datendatei kürzen

Sie können die Datendatei mit TRUNCATEONLY kürzen Argument.

Hier ist ein Beispiel:

USE Solutions;  
GO  
DBCC SHRINKFILE ('Solutions', TRUNCATEONLY);
GO

Datendatei leeren

Sie können eine Datendatei auch leeren, indem Sie EMPTYFILE verwenden Argument.

Beispiel:

DBCC SHRINKFILE (Solutions2, EMPTYFILE);  
GO 

Dadurch werden alle Daten aus der angegebenen Datei in andere Dateien in derselben Dateigruppe migriert. Daher müssen Sie sicherstellen, dass dies nicht die einzige Datei in der Dateigruppe ist (andernfalls erhalten Sie eine Fehlermeldung). EmptyFile versichert Ihnen auch, dass der Datei keine neuen Daten hinzugefügt werden.

Sobald Sie die Datei geleert haben, können Sie sie entfernen, wenn Sie dies möchten. Hier ist ein Beispiel für das Entfernen der geleerten Datei:

ALTER DATABASE Solutions  
REMOVE FILE Solutions2;  
GO 

Und wir können überprüfen, ob es entfernt wurde, indem wir Folgendes ausführen:

USE Solutions;  
GO  
SELECT file_id, name, type_desc, physical_name, size, max_size  
FROM sys.database_files ;  
GO