Partilhar via


DBCC FREESYSTEMCACHE (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Libera todas as entradas de cache não utilizadas de todos os caches. O Mecanismo de Banco de Dados do SQL Server limpa proativamente as entradas de cache não utilizadas em segundo plano para disponibilizar memória para as entradas atuais. No entanto, você pode usar esse comando para remover manualmente entradas não utilizadas de cada cache ou de um cache de pool do Administrador de Recursos especificado.

Transact-SQL convenções de sintaxe

Sintaxe

DBCC FREESYSTEMCACHE
    ( 'ALL' [ , pool_name ] )
    [ WITH
    { [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ]  }
    ]

Argumentos

( «TODOS» [ , pool_name ] )

  • TUDO

    Especifica todos os caches suportados.

  • pool_name

    Especifica um cache do pool do administrador de recursos. Apenas as entradas associadas a este pool são liberadas. Para listar os nomes de pool disponíveis, execute:

    SELECT name FROM sys.dm_resource_governor_resource_pools;
    

A maioria, mas não todos, os caches podem ser liberados individualmente usando esse comando.

MARK_IN_USE_FOR_REMOVAL

Libera de forma assíncrona as entradas usadas atualmente de seus respetivos caches depois que elas não são usadas. Depois que o DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL é executado, as novas entradas criadas no cache não são afetadas.

NO_INFOMSGS

Suprime todas as mensagens informativas.

Comentários

A execução DBCC FREESYSTEMCACHE limpa o cache de plano para a instância do SQL Server. Limpar o cache do plano causa uma recompilação de todos os planos de execução futuros e pode causar uma redução súbita e temporária no desempenho da consulta. Para cada armazenamento de cache limpo no cache de plano, o log de erros do SQL Server contém a seguinte mensagem informativa:

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.

Essa mensagem é registrada a cada cinco minutos, desde que o cache seja liberado dentro desse intervalo de tempo.

Conjuntos de resultados

DBCC FREESYSTEMCACHE devoluções:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Permissões

Requer a permissão ALTER SERVER STATE no servidor.

Exemplos

Um. Liberar entradas de cache não utilizadas de um cache do pool do Administrador de Recursos

O exemplo a seguir ilustra como limpar caches dedicados a um pool de recursos especificado do Administrador de Recursos.

-- Clean all the caches with entries specific to the
-- resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL', [default]);

B. Liberar entradas de seus respetivos caches depois que elas não forem usadas

O exemplo a seguir usa a cláusula MARK_IN_USE_FOR_REMOVAL para liberar entradas de todos os caches atuais quando as entradas não forem usadas.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;

Ver também