sp_filestream_force_garbage_collection (Transact-SQL)
Forza il Garbage Collector di FILESTREAM all'esecuzione, eliminando qualsiasi file FILESTREAM non necessario.
Non è possibile rimuovere un contenitore FILESTREAM finché il Garbage Collector non ha completato la rimozione di tutti i file eliminati all'interno di esso. Il Garbage Collector di FILESTREAM viene eseguito automaticamente. Tuttavia, se è necessario rimuovere un contenitore prima dell'esecuzione del Garbage Collector, è possibile utilizzare sp_filestream_force_garbage_collection per eseguire manualmente il Garbage Collector.
Si applica a: SQL Server (da SQL Server 2012 a versione corrente). |
Sintassi
sp_filestream_force_garbage_collection [ @dbname = ] 'database_name' , @filename = 'logical_file_name' ]
Argomenti
@dbname = database_name**'**
Indica il nome del database in cui eseguire il Garbage Collector.Nota
dbname è di tipo sysname.Se viene omesso, verrà considerato il database corrente.
@filename = logical_file_name
Indica il nome logico del contenitore FILESTREAM in cui eseguire il Garbage Collector. @filename è facoltativo. Se non viene specificato alcun nome di file logico, il Garbage Collector eseguirà la pulizia di tutti i contenitori FILESTREAM nel database specificato.
Valori di codice restituiti
Valore |
Descrizione |
0 |
Operazione riuscita |
1 |
Operazione non riuscita |
Set di risultati
Valore |
Descrizione |
---|---|
file_name |
Indica il nome del contenitore FILESTREAM |
num_collected_items |
Indica il numero di elementi FILESTREAM (file/directory) che sono stati sottoposti a Garbage Collection (eliminati) in questo contenitore. |
num_marked_for_collection_items |
Indica il numero di elementi FILESTREAM (file/directory) che sono stati contrassegnati per il Garbage Collection in questo contenitore. Questi elementi non sono ancora stati eliminati, ma potrebbero essere idonei all'eliminazione nella fase seguente di Garbage Collection. |
num_unprocessed_items |
Indica il numero di elementi FILESTREAM (file o directory) idonei che non sono stati elaborati per il Garbage Collection in questo contenitore FILESTREAM. Gli elementi possono non essere elaborati per i vari motivi, tra cui:
|
last_collected_xact_seqno |
Restituisce l'ultimo numero di sequenza del file di log (LSN) corrispondente fino a cui i file sono stati sottoposti a Garbage Collection per il contenitore FILESTREAM specificato. |
Osservazioni
Esegue in modo esplicito l'attività Garbage Collector per FILESTREAM per il completamento nel database richiesto (e il contenitore FILESTREAM). I file che non sono più necessari vengono rimossi dal processo di Garbage Collection. Il tempo necessario per il completamento di questa operazione dipende dalle dimensioni dei dati FILESTREAM in tale database o contenitore nonché dalla quantità di attività DML recentemente eseguita sui dati FILESTREAM. Sebbene questa operazione possa essere eseguita con il database in modalità online, ciò potrebbe influire sulle prestazioni del database durante l'esecuzione a causa delle varie attività I/O eseguite dal processo di Garbage Collection.
Nota
Si consiglia di eseguire questa operazione solo quando è necessario e in orario diverso da quello lavorativo.
È possibile eseguire contemporaneamente più chiamate di questa stored procedure solo in contenitori separati o database separati.
Autorizzazioni
È richiesta l'appartenenza al ruolo del database db_owner.
Esempi
Negli esempi seguenti viene eseguito il Garbage Collector per i contenitori FILESTREAM nel database FSDB.
A.Specifica di nessun contenitore
USE FSDB;
GO
EXEC sp_filestream_force_garbage_collection @dbname = N'FSDB';
B.Specifica di un contenitore
USE FSDB;
GO
EXEC sp_filestream_force_garbage_collection @dbname = N'FSDB' @filename = N'FSContainer';