Partager via


sp_clean_db_free_space (Transact-SQL)

s’applique à :SQL ServerAzure SQL Managed Instance

Supprime les informations résiduelles sur les pages de données. sp_clean_db_free_space Nettoie toutes les pages de tous les fichiers de données de la base de données.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_clean_db_free_space
    [ @dbname = ] N'dbname'
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

Arguments

[ @dbname = ] N’dbname'

Nom de la base de données à nettoyer. @dbname est sysname, sans valeur par défaut.

[ @cleaning_delay = ] cleaning_delay

Spécifie un intervalle à retarder avant le nettoyage de chaque page, en secondes. @cleaning_delay est int, avec la valeur par défaut 0. Ce délai aide à réduire la charge sur le système d’E/S au détriment d’allonger la durée du processus de nettoyage.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

La sp_clean_db_free_space procédure stockée du système déplace toutes les lignes d’une page, y compris les enregistrements fantômes s’il y en a, au début de la page, puis zérose le reste de l’espace de données sur la page. Dans les environnements où la sécurité physique des fichiers de données ou du stockage sous-jacent est en danger, vous pouvez utiliser cette procédure de stockage pour vous assurer qu’aucune donnée supprimée ne reste dans les fichiers ou dans le stockage.

Le temps nécessaire pour l’exécution sp_clean_db_free_space dépend de la taille des fichiers de données, du nombre de pages utilisées dans les fichiers et des capacités d’E/S du disque. Comme la course sp_clean_db_free_space peut considérablement augmenter l’activité des E/S, nous recommandons de réaliser cette procédure en dehors des heures 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.

Pour effectuer cette opération par fichier de base de données, utilisez sp_clean_db_file_free_space.

autorisations

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

Exemples

L’exemple suivant nettoie toutes les données résiduelles de la AdventureWorks2025 base de données.

USE master;
GO

EXECUTE sp_clean_db_free_space @dbname = N'AdventureWorks2022';