Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment réduire la taille d'un fichier de données dans SQL Server (T-SQL)

Dans SQL Server, lors de l'utilisation de Transact-SQL, la réduction de la taille d'un fichier de données nécessite une syntaxe différente de son augmentation. Pour réduire la taille d'un fichier à l'aide de T-SQL, utilisez le DBCC SHRINKFILE et indiquez le nom du fichier de données ainsi que la taille à laquelle vous souhaitez le réduire.

Vous trouverez ci-dessous des exemples de réduction de la taille d'un fichier de données dans SQL Server à l'aide de T-SQL.

Exemple de base

Voici un exemple basique de réduction de la taille d'un fichier de données à l'aide de T-SQL :

USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2, 5);
GO

Ceci est probablement assez explicite. Tout d'abord, nous passons à la base de données dont nous voulons modifier le fichier de données. Nous utilisons ensuite DBCC SHRINKFILE pour spécifier quel fichier de données et à quelle taille de fichier le réduire. C'est en Mo, donc notre exemple le réduira à 5 Mo.

Réduisez-le à la taille de fichier par défaut

Si vous ne spécifiez pas de taille de fichier, le fichier sera réduit à sa taille par défaut. La taille par défaut est la taille spécifiée lors de la création du fichier.

Exemple :

USE Solutions;
GO

DBCC SHRINKFILE (Solutions_dat_2);
GO

Tronquer le fichier de données

Vous pouvez tronquer le fichier de données en utilisant le TRUNCATEONLY arguments.

Voici un exemple :

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

Vider un fichier de données

Vous pouvez également vider un fichier de données en utilisant le EMPTYFILE arguments.

Exemple :

DBCC SHRINKFILE (Solutions2, EMPTYFILE);  
GO 

Cela migre toutes les données du fichier spécifié vers d'autres fichiers dans le même groupe de fichiers. Par conséquent, vous devrez vous assurer que ce n'est pas le seul fichier du groupe de fichiers (sinon vous obtiendrez une erreur). EmptyFile vous assure également qu'aucune nouvelle donnée ne sera ajoutée au fichier.

Une fois que vous avez vidé le fichier, vous pouvez le supprimer si c'est ce que vous voulez faire. Voici un exemple de suppression du fichier vidé :

ALTER DATABASE Solutions  
REMOVE FILE Solutions2;  
GO 

Et nous pouvons vérifier qu'il a été supprimé en exécutant ce qui suit :

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