sp_filestream_force_garbage_collection (Transact-SQL)
Force le garbage collector FILESTREAM à s'exécuter, en supprimant tous fichiers FILESTREAM inutiles.
Un conteneur FILESTREAM ne peut pas être supprimé tant que tous les fichiers supprimés qu'il contient n'ont pas été nettoyés par le garbage collector. Le garbage collector FILESTREAM s'exécute automatiquement. Toutefois, si vous devez supprimer un conteneur avant que le garbage collector se soit exécuté, vous pouvez utiliser sp_filestream_force_garbage_collection pour exécuter le garbage collector manuellement.
Syntaxe
sp_filestream_force_garbage_collection [ @dbname = ] 'database_name' , @filename = 'logical_file_name' ]
Arguments
@dbname = database_name**'**
Représente le nom de la base de données dans laquelle exécuter le garbage collector.[!REMARQUE]
dbname est de type sysname. En l'absence de spécification, c'est la base de données actuelle qui est utilisée.
@filename = logical_file_name
Spécifie le nom logique du conteneur FILESTREAM dans lequel exécuter le garbage collector. @filename est facultatif. Si aucun nom de fichier logique n'est spécifié, le garbage collector nettoiera tous les conteneurs FILESTREAM dans la base de données spécifiée.
Valeurs des codes de retour
Valeur |
Description |
0 |
Réussite de l'opération |
1 |
Échec de l'opération |
Jeux de résultats
Valeur |
Description |
---|---|
file_name |
Indique le nom de conteneur FILESTREAM |
num_collected_items |
Indique le nombre d'éléments FILESTREAM (fichiers/répertoires) qui ont été récupérés par le garbage collector (supprimés) dans ce conteneur. |
num_marked_for_collection_items |
Indique le nombre d'éléments FILESTREAM (fichiers/répertoires) qui ont été marqués pour le garbage collection dans ce conteneur. Ces éléments n'ont pas encore été supprimés, mais peuvent être éligibles pour une suppression dans la phase de garbage collection suivante. |
num_unprocessed_items |
Indique le nombre d'éléments FILESTREAM éligibles (fichiers ou répertoires) qui n'ont pas été traités pour le garbage collection dans ce conteneur FILESTREAM. Les éléments peuvent être inexploités pour différentes raisons, notamment :
|
last_collected_xact_seqno |
Retourne le dernier numéro séquentiel dans le journal correspondant (LSN) jusqu'aux fichiers récupérés par le garbage collector pour le conteneur FILESTREAM spécifié. |
Notes
Exécute explicitement la tâche de Garbage collector FILESTREAM à l'achèvement sur la base de données demandée (et le conteneur FILESTREAM). Les fichiers qui ne sont plus nécessaires sont supprimés par le processus de garbage collection. La durée d'exécution de cette opération varie selon la taille des données FILESTREAM dans cette base de données ou ce conteneur, ainsi qu'en fonction de l'activité DML qui s'est produite récemment sur les données FILESTREAM. Bien que cette opération puisse être exécutée avec la base de données en ligne, cela peut affecter les performances de la base de données pendant son exécution en raison des différentes activités d'entrées/sorties effectuées par le processus de garbage collection.
[!REMARQUE]
Il est recommandé de n'exécuter cette opération que lorsque cela est nécessaire et en dehors des heures d'activité habituelles.
Plusieurs appels de cette procédure stockée peuvent être exécutés simultanément uniquement sur des conteneurs distincts ou des bases de données distinctes.
Autorisations
Nécessite l'appartenance au rôle de base de données db_owner.
Exemples
Les exemples suivants exécutent le garbage collector pour les conteneurs FILESTREAM dans la base de données FSDB.
A.Absence de spécification d'un conteneur
USE FSDB;
GO
EXEC sp_filestream_force_garbage_collection @dbname = N'FSDB';
B.Spécification d'un conteneur
USE FSDB;
GO
EXEC sp_filestream_force_garbage_collection @dbname = N'FSDB' @filename = N'FSContainer';