DBCC FREESYSTEMCACHE (Transact-SQL)
Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di Azure
Rilascia tutte le voci non utilizzate da tutte le cache. Il motore di database di SQL Server rimuove in background le voci non utilizzate nella cache per liberare memoria per le voci correnti. È tuttavia possibile usare questo comando per rimuovere manualmente le voci inutilizzate da ogni cache o da una cache di pool di Resource Governor specificata.
Convenzioni di sintassi Transact-SQL
Sintassi
DBCC FREESYSTEMCACHE
( 'ALL' [ , pool_name ] )
[ WITH
{ [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ] }
]
Nota
Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.
Argomenti
( 'ALL' [ , pool_name ] )
ALL
Specifica tutte le cache supportate.
pool_name
Specifica una cache del pool di Resource Governor. Vengono liberate solo le voci associate a questo pool. Per elencare i nomi dei pool disponibili, eseguire:
SELECT name FROM sys.dm_resource_governor_resource_pools;
La maggior parte delle cache, ma non tutte, può essere liberata singolarmente tramite questo comando.
MARK_IN_USE_FOR_REMOVAL
Libera in modalità asincrona le voci in uso dalle rispettive cache quando non vengono più usate. Dopo l'esecuzione DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL
, le nuove voci create nella cache non sono interessate.
NO_INFOMSGS
Disattiva tutti i messaggi informativi.
Osservazioni
L'esecuzione DBCC FREESYSTEMCACHE
cancella la cache del piano per l'istanza di SQL Server. La cancellazione della cache dei piani determina la ricompilazione di tutti i piani di esecuzione successivi e può causare un improvviso peggioramento temporaneo delle prestazioni delle query. Per ogni archivio cache cancellato nella cache dei piani, il log degli errori di SQL Server contiene il messaggio informativo seguente:
SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to 'DBCC FREEPROCCACHE' or 'DBCC FREESYSTEMCACHE' operations.
Questo messaggio viene registrato ogni cinque minuti per tutta la durata dello scaricamento della cache.
Set di risultati
DBCC FREESYSTEMCACHE
Restituisce:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Autorizzazioni
È necessario disporre dell'autorizzazione ALTER SERVER STATE per il server.
Esempi
R. Rilasciare voci di cache inutilizzate da una cache del 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. Rilasciare le voci dalle rispettive cache dopo che 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;