Você pode ter uma diminuição no desempenho da consulta depois de você executar determinadas operações de manutenção de banco de dados ou operações de transação regulares no SQL Server 2005

Traduções deste artigo Traduções deste artigo
ID do artigo: 917828 - Exibir os produtos aos quais esse artigo se aplica.
Bug #: 329155 (SQLBUDT)
Expandir tudo | Recolher tudo

Sintomas

No Microsoft SQL Server 2005, você pode enfrentar uma diminuição no desempenho da consulta depois de executar determinadas operações de manutenção de banco de dados ou operações de transação regular. Por exemplo, você notará uma diminuição repentina no desempenho da consulta após restaurar um backup do banco de dados.

Iniciando com o SQL Server 2005 Service Pack 2, você irá notar mensagens, como a seguir no log de erro do SQL Server quando esse problema ocorre:
2006-10-15 06:03:29.330 spid59 SQL Server encontrou 4 occurrence(s) de cachestore liberação para cachestore 'Objeto planos' (parte do plano de cache) devido a algumas manutenção do banco de dados ou reconfigurar as operações.
2006-10-15 06:03:29.420 spid59 SQL Server encontrou 4 occurrence(s) de cachestore liberação para cachestore 'SQL planos' (parte do plano de cache) devido a algumas manutenção do banco de dados ou reconfigurar as operações.
2006-10-15 06:03:29.420 spid59 SQL Server encontrou 4 occurrence(s) de cachestore liberação para a 'Limite árvores' cachestore (parte do plano de cache) devido a algumas manutenção do banco de dados ou reconfigurar as operações.
No entanto, você pode executar o comando DBCC FREEPROCCACHE ou o comando DBCC FREESYSTEMCACHE para liberar o cache de procedimento. Se o cache de procedimento é liberado executando um desses comandos, você irá notar mensagens que se assemelhem seguinte no log de erro do SQL Server:
2006-12-14 11:37:03.57 spid53 SQL Server encontrou 1 occurrence(s) de cachestore liberação para cachestore 'SQL planos' (parte do plano de cache) devido a operações 'DBCC FREEPROCCACHE' ou 'DBCC FREESYSTEMCACHE'.
2006-12-14 11:37:03.57 spid53 SQL Server encontrou 1 occurrence(s) de cachestore liberação para a 'Limite árvores' cachestore (parte do plano de cache) devido a operações 'DBCC FREEPROCCACHE' ou 'DBCC FREESYSTEMCACHE'.
Portanto, você pode examinar o log de erro do SQL Server para determinar se o problema é causado pelo problema descrito neste artigo.

Observação Esse comportamento não ocorre no Microsoft SQL Server 2008.

Causa

Esse problema ocorre porque determinadas operações de manutenção de banco de dados ou operações de transação regular limpar o cache procedimento inteiro.

Situação

Esse comportamento é por design.

Mais Informações

O cache de procedimento inteiro é limpo quando determinadas operações de nível de banco de dados são realizadas nas seguintes situações:
  • Um banco de dados tem a opção de banco de dados AUTO_CLOSE definido como ON. Quando nenhuma conexão de usuário referencia ou usa o banco de dados, tarefa em segundo plano tenta fechar e desligar automaticamente o banco de dados.
  • Você pode executar várias consultas em um banco de dados que tenha opções padrão. Em seguida, o banco de dados será interrompido.
  • Um instantâneo de banco de dados para um banco de dados de origem é descartado.

    Observação Instantâneos de banco de dados só estão disponíveis no Microsoft SQL Server 2005 Enterprise Edition.
  • Você alterar o estado do banco de dados para OFFLINE ou ONLINE.
  • Recriar o log de transações para um banco de dados com êxito.
  • Você restaurar um backup do banco de dados.
  • Você executar a instrução DBCC CHECKDB.

    Observação Isso é verdade somente nas versões do SQL Server 2005 anteriores ao SQL Server 2005 SP2. Após instalar o SQL Server 2005 SP2 ou posterior, o cache de procedimento inteiro não é liberado quando você executa a instrução DBCC CHECKDB.
  • Desanexar um banco de dados.
  • Você especificar uma das seguintes opções ao executar a instrução ALTER DATABASE:
    • OFF-LINE
    • ON-LINE
    • MODIFICAR O GRUPO DE ARQUIVOS PADRÃO
    • MODIFY_NAME
    • MODIFICAR READ_WRITE DO GRUPO DE ARQUIVOS
    • AGRUPAR
    • MODIFICAR READ_ONLY DO GRUPO DE ARQUIVOS
    • READ_ONLY
    • READ_WRITE
  • O cache de procedimento inteiro está desmarcado se uma das seguintes opções de servidor for alterada, a instrução RECONFIGURE:
    • entre o encadeamento de propriedade do banco de dados
    • índice criar memória (KB)
    • tempo limite de consulta remota (s)
    • Opções de usuário
    • tamanho do texto máximo repl (B)
    • limite de custo para paralelismo
    • grau máximo de paralelismo
    • min memory per query (KB)
    • espera de consulta (s)
    • memória do servidor min (MB)
    • memória máxima do servidor (MB)
    • limite de custo do Gerenciador de consulta
    Observação Cache de procedimento não será desmarcada se o valor real não é alterado ou se o novo valor para a opção de servidor de memória máxima do servidor é definido como 0.
Se você enfrentar esse problema, você notar alterações em valores a seguir ao usar o Monitor de desempenho para coletar dados de contadores de desempenho do SQL Server 2005:
  • objeto de desempenho: Processo
    contador: % tempo do processador
    instância: sqlservr

    O valor desse contador aumentará devido a maior atividade da CPU. Essencialmente, o cache de procedimento inteiro está desmarcado se esse problema ocorre. Portanto, as solicitações subseqüentes devem gerar novos planos para ser armazenada em cache. Esse comportamento um pouco aumentará a atividade da CPU.
  • objeto de desempenho: Cache SQLServer:Plan
    contador: Contagens de objeto do cache
    instância: _Total

    objeto de desempenho: Cache SQLServer:Plan
    contador: Páginas do cache
    instância: _Total

    Os valores desses contadores, de repente, diminuirá.

    Observação Para uma instância nomeada do SQL Server 2005, o objeto de desempenho é chamado de MSSQL $ InstanceName: planejar cache.
  • objeto de desempenho: Estatísticas de SQLServer:SQL
    contador: SQLCompilations/s

    O valor desse contador aumentará significativamente após esse incidente.

    Observação Para uma instância nomeada do SQL Server 2005, o objeto de desempenho é chamado de MSSQL $ InstanceName: SQL estatísticas.
Se você capturar um rastreamento do Profiler SQL usando o evento SP:CacheRemove , você notará que esse evento é gerado junto com o seguinte valor de coluna TextData quando esse problema ocorre:
"Liberados do cache de procedimento inteiro"

Propriedades

ID do artigo: 917828 - Última revisão: terça-feira, 17 de fevereiro de 2009 - Revisão: 7.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
Palavras-chave: 
kbmt kbsql2005engine kbexpertiseadvanced kbtshoot kbprb KB917828 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 917828

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com