DBCC FREESYSTEMCACHE (Transact-SQL)

Libera todas as entradas não utilizadas de todos os caches. De forma pró-ativa, o Mecanismo de Banco de Dados do SQL Server limpa em segundo plano as entradas de cache para tornar a memória disponível para entradas atuais. Porém, você pode usar este comando para remover manualmente entradas não usadas de todos os caches ou de um cache de pool do Administrador de Recursos especificado.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • ( 'ALL' [, pool_name ] )
    ALL especifica todos os caches suportados.

    ALL especifica todos os caches com suporte. pool_name especifica um cache de pool do Administrador de Recursos. Somente as entradas associadas a esse pool serão liberadas.

  • MARK_IN_USE_FOR_REMOVAL
    Remove de forma assíncrona as entradas atualmente utilizadas de seus respectivos caches quando elas não são mais utilizadas. As novas entradas criadas no cache depois que o DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL for executado não serão afetadas.

  • NO_INFOMSGS
    Suprime todas as mensagens informativas.

Conjuntos de resultados

DBCC FREESYSTEMCACHE retorna:

"A execução do DBCC foi concluída. Se o DBCC imprimiu mensagens de erro, entre em contato com o administrador do sistema".

Comentários

A execução de DBCC FREESYSTEMCACHE limpa o cache de planos para a instância do SQL Server. A limpeza do cache de planos gera uma recompilação de todos os planos de execução subseqüentes e pode causar uma queda repentina e temporária no desempenho de consultas. Para cada armazenamento em cache limpo no cache de planos, o log de erros de SQL Server contém a seguinte mensagem informativa: "O SQL Server encontrou %d ocorrência(s) de liberação de armazenamento em cache '% s' (parte do cache de planos) devido às operações 'DBCC FREEPROCCACHE' ou 'DBCC FREESYSTEMCACHE'". Essa mensagem é registrada a cada cinco minutos, contanto que o cache seja limpo dentro desse intervalo.

Permissões

Requer a permissão ALTER SERVER STATE no servidor.

Exemplos

A. Removendo entradas de cache não utilizadas de um cache de pool do Administrador de Recursos

O exemplo a seguir ilustra como limpar caches que são específicos de pool de recursos do Administrador de Recursos.

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

B. Removendo entradas de seus respectivos caches quando elas não são mais utilizadas.

O exemplo seguinte usa a cláusula MARK_IN_USE_FOR_REMOVAL para remover entradas de todos os caches atuais quando elas não são mais utilizadas.

DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;