Partager via


sp_clean_db_free_space (Transact-SQL)

Supprime des informations qui sont restées sur les pages de la base de données en raison des routines de modification de données dans SQL Server. sp_clean_db_free_space nettoie toutes les pages de tous les fichiers de la base de données.

S'applique à : SQL Server (SQL Server 2008 via la version actuelle).

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

sp_clean_db_free_space 
[ @dbname ] = 'database_name' 
[ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]

Arguments

  • [ @dbname= ] 'database_name'
    Nom de la base de données à nettoyer. L'argument dbname est de type sysname et ne peut pas être NULL.

  • [ @cleaning\_delay= ] 'delay_in_seconds'
    Spécifie un intervalle entre le nettoyage des pages. Cela réduit l'effet sur le système d'E/S. delay_in_seconds est de type int avec 0 comme valeur par défaut.

Valeurs des codes de retour

0 (réussite) ou 1 (échec)

Notes

Les opérations de suppression d'une table ou les opérations de mise à jour qui entraînent le déplacement d'une ligne peuvent libérer immédiatement de l'espace sur une page en supprimant les références à cette ligne. Cependant, dans certains cas, la ligne peut physiquement être conservée sur la page de données sous la forme d'un enregistrement fantôme. Les enregistrements fantômes sont supprimés régulièrement par un processus en arrière-plan. Ces données résiduelles ne sont pas retournées par le moteur de base de données en réponse aux requêtes. Cependant, dans des environnements dans lesquels la sécurité physique des données ou des fichiers de sauvegarde est menacée, vous pouvez utiliser sp_clean_db_free_space pour nettoyer ces enregistrements fantômes.

La durée d'exécution de sp_clean_db_free_space dépend de la taille du fichier, de l'espace disponible et de la capacité du disque. Dans la mesure où l'exécution de sp_clean_db_free_space peut affecter de manière significative l'activité des entrées/sorties, il est recommandé d'exécuter cette procédure en dehors des heures d'activité.

Avant d'exécuter sp_clean_db_free_space, nous vous recommandons de créer une sauvegarde complète de la base de données.

La procédure stockée sp_clean_db_file_free_space associée nettoie un seul fichier.

Autorisations

Nécessite l'appartenance au rôle de base de données db_owner.

Exemples

L'exemple suivant nettoie toutes les informations résiduelles de la base de données AdventureWorks2012.

USE master;
GO
EXEC sp_clean_db_free_space 
@dbname = N'AdventureWorks2012' ;

Voir aussi

Référence

Procédures stockées du moteur de base de données (Transact-SQL)