sp_clean_db_free_space(Transact-SQL)
- Article
- 01/29/2021
- 2 minutes à lire
-
- m
- c
- r
- p
- M
-
+4
S’applique à: SQL Server (toutes les versions prises en charge)
Supprime les informations résiduelles laissées sur les pages de la base de données en raison des 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 syntaxe Transact-SQL
Syntaxe
sp_clean_db_free_space 'database_name' 'delay_in_seconds' ]
Arguments
@dbname=’database_name’
Est le 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 de délai entre le nettoyage des pages. Cela permet de réduire l’effet sur le système d’E/S. delay_in_seconds est int avec une valeur par défaut de 0.
Valeurs de code de retour
0 (succès) ou 1 (échec)
Remarques
Les opérations de suppression d’une table ou de mise à jour qui provoquent le déplacement d’une ligne peuvent immédiatement libérer de l’espace sur une page en supprimant les références à la ligne. Cependant, dans certaines circonstances, la ligne peut rester physiquement sur la page de données en tant qu’enregistrement fantôme. Les enregistrements fantômes sont périodiquement supprimés par un processus d’arrière-plan. Ces données résiduelles ne sont pas renvoyées par le moteur de base de données en réponse à des requêtes. Cependant, dans les 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. 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 libre disponible et de la capacité du disque. Étant donné que l’exécution de sp_clean_db_free_space
peut affecter de manière significative l’activité des E / S, nous vous recommandons d’exécuter cette procédure en dehors des heures de fonctionnement habituelles.
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 peut nettoyer un seul fichier.
Permissions
Nécessite l’adhésion 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
Procédures stockées du Moteur de Base de données (Transact-SQL)
Guide du Processus de Nettoyage fantôme
sp_clean_db_file_free_space (Transact-SQL)