DBCC FREESYSTEMCACHE (Transact-SQL)
Rilascia tutte le voci non utilizzate da tutte le cache. Motore di database di SQL Server rimuove in background le voce non utilizzate nella cache per liberare memoria per le voci correnti. Tuttavia, è possibile utilizzare questo comando per rimuovere manualmente le voci inutilizzate da tutte le cache o da una cache di pool di Resource Governor specificata.
Sintassi
DBCC FREESYSTEMCACHE
( 'ALL' [, pool_name ] )
[WITH
{ [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ] }
]
Argomenti
( 'ALL' [, pool_name ] )
ALL specifica tutte le cache supportate.pool_name specifica una cache del pool di Resource Governor. Verranno liberate solo le voci associate a questo pool.
MARK_IN_USE_FOR_REMOVAL
Libera in modalità asincrona le voci utilizzate dalle relative cache non appena tali voci risultano inutilizzate. Le nuove voci create nella cache dopo l'esecuzione di DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL rimangono invariate.NO_INFOMSGS
Disattiva tutti i messaggi informativi.
Set di risultati
Il comando DBCC FREESYSTEMCACHE restituisce:
"Esecuzione DBCC completata. Se sono stati visualizzati messaggi di errore DBCC, rivolgersi all'amministratore di sistema."
Osservazioni
L'esecuzione di DBCC FREESYSTEMCACHE comporta la cancellazione della cache dei piani per l'istanza di SQL Server. La cancellazione della cache dei piani comporta la ricompilazione di tutti i piani di esecuzione successivi e può causare un improvviso temporaneo peggioramento delle prestazioni di esecuzione delle query. Il log degli errori di SQL Server contiene il messaggio informativo seguente per ogni archivio cache cancellato nella cache dei piani: "SQL Server ha rilevato %d occorrenza/e di scaricamento dell'archivio cache '%s' (parte della cache dei piani) a causa di operazioni 'DBCC FREEPROCCACHE' o 'DBCC FREESYSTEMCACHE'". Questo messaggio viene registrato ogni cinque minuti per tutta la durata dello scaricamento della cache.
Autorizzazioni
È necessario disporre dell'autorizzazione ALTER SERVER STATE per il server.
Esempi
A. Rilascio delle voci inutilizzate da una cache di pool di Resource Governor
Nell'esempio seguente viene illustrato come pulire le cache dedicate a un pool di risorse di Resource Governor specificato.
-- Clean all the caches with entries specific to the resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL','default');
B. Rilascio delle voci dalle relative cache non appena tali voci diventano inutilizzate
Nell'esempio seguente viene utilizzata la clausola MARK_IN_USE_FOR_REMOVAL per rilasciare le voci da tutte le cache correnti non appena le voci diventano inutilizzate.
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
Vedere anche