Condividi tramite


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;

Vedi anche