Condividi tramite


DBCC FREESYSTEMCACHE (Transact-SQL)

Rilascia tutte le voci non utilizzate da tutte le cache. Motore di database di SQL Server rimuove in background le voci 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.

Si applica a: SQL Server (da SQL Server 2008 a versione corrente).

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

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 l'intervallo di tempo necessario allo 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

Riferimento

DBCC (Transact-SQL)

DBCC FREEPROCCACHE (Transact-SQL)

DBCC FREESESSIONCACHE (Transact-SQL)

Concetti

Resource Governor