Partage via


sp_clean_db_file_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_file_free_space nettoie toutes les pages d’un seul fichier d’une base de données.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_clean_db_file_free_space
    [ @dbname = ] N'dbname'
    , [ @fileid = ] fileid
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

Arguments

[ @dbname = ] N’dbname'

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

[ @fileid = ] fichier

ID du fichier de données à nettoyer. @fileid est int, 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_file_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 s’exécuter sp_clean_db_file_free_space dépend de la taille du fichier de données, du nombre de pages utilisées dans le fichier et des capacités d’E/S du disque. Comme la course sp_clean_db_file_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_file_free_space, nous vous recommandons de créer une sauvegarde complète de base de données.

Pour effectuer cette opération pour tous les fichiers de données d’une base de données, utilisez sp_clean_db_free_space.

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 du fichier de données principal de la base de données AdventureWorks2025.

USE master;
GO

EXECUTE sp_clean_db_file_free_space
    @dbname = N'AdventureWorks2022',
    @fileid = 1;