sp_clean_db_free_space (Transact-SQL)
S'applique à : SQL Server
Supprime les informations résiduelles laissées sur les pages de base de données en raison de routines de modification des données dans SQL Server. sp_clean_db_free_space nettoie toutes les pages de tous les fichiers de la base de données.
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. dbname est 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 int avec une valeur par défaut de 0.
Codet de retour
0 (réussite) ou 1 (échec)
Notes
Les opérations de suppression d’une table ou de mise à jour qui provoquent un déplacement d’une ligne peuvent libérer immédiatement de l’espace sur une page en supprimant les références à la 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. Toutefois, dans les environnements dans lesquels la sécurité physique des fichiers de données ou de sauvegarde est en danger, vous pouvez utiliser sp_clean_db_free_space
pour nettoyer ces enregistrements fantômes. Pour effectuer cette opération par fichier de base de données, utilisez sp_clean_db_file_free_space (Transact-SQL).
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. Étant donné que l’exécution sp_clean_db_free_space
peut affecter considérablement l’activité d’E/S, nous vous recommandons d’exécuter cette procédure en dehors des heures d’opération habituelles.
Avant d’exécuter sp_clean_db_free_space
, nous vous recommandons de créer une sauvegarde complète de base de données.
La procédure stockée sp_clean_db_file_free_space associée peut nettoyer un seul fichier.
autorisations
Nécessite l’appartenance au db_owner
rôle de base de données.
Exemples
L'exemple suivant nettoie toutes les informations résiduelles de la base de données AdventureWorks2022
.
USE master;
GO
EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2022';
Voir aussi
procédures stockées Moteur de base de données (Transact-SQL)
Guide du processus de nettoyage fantôme
sp_clean_db_file_free_space (Transact-SQL)
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour