Você está offline; aguardando reconexão

CORREÇÃO: Desempenho lento ocorre no SQL Server 2008 R2 ou no SQL Server 2012 se alto uso da CPU é observado com contenção sobre spinlock QUERY_EXEC_STATS

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: 2662301
A Microsoft distribui Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012 correções em um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com o anterior SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012 lançamento da atualização.
Sintomas
Considere o seguinte cenário:
  • Instalar uma instância de Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2012 em um computador.
  • Instruções simultâneas semelhantes aos seguintes são executadas na instância:
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    Ou executar uma consulta que contém o seguinte código:

    IF EXISTS(
    subquery
    );
  • O uso da CPU é consistentemente alto e os threads de trabalho estão no estado executável.
  • A contenção para o QUERY_EXEC_STATS spinlock é alta.
    A contagem de rotação, possíveis colisões e os valores de voltar para o QUERY_EXEC_STATS spinlock aumentar rapidamente.
    Observação Para obter mais informações sobre como monitorar o QUERY_EXEC_STATS spinlock, consulte a seção "Mais informações".

Neste cenário, pode ocorrer desempenho lento.

Causa
Esse problema porque ocorre SQL Server 2008 R2 ou SQL Server 2012 cria e destrói algumas estruturas de memória sobre estatísticas globais em vez de cache-los. Isso causa um afunilamento de desempenho.
Resolução

Informações da atualização cumulativa

SQL Server 2012

A correção para esse problema foi lançada primeiro na atualização cumulativa 1 para SQL Server 2012. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2679368 Pacote de atualização cumulativa 1 para SQL Server 2012
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e lançamento de corrigir todas as correções de segurança que foram incluídas com o anterior 2012 de SQL Server. A Microsoft recomenda que você considere a aplicação a versão mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2692828 2012 De SQL Server compilações lançadas após o lançamento do SQL Server 2012
Você deve aplicar um hotfix de SQL Server 2012 para uma instalação do SQL Server 2012.

Pacote de atualização cumulativa 5 para SQL Server 2008 R2 SP1

A correção para esse problema foi lançada em 5 de atualização cumulativa. Para obter mais informações sobre como obter esse pacote de atualização cumulativa para SQL Server 2008 R2 SP1, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2659694 Pacote de atualização cumulativa 5 para SQL Server 2008 R2 SP1
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e lançamento de corrigir todas as correções de segurança que foram incluídas com o anterior SQL Server 2008 R2 SP1. Recomendamos que você considere a aplicação a versão mais recente de correção que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2567616 SQL Server 2008 R2 compilações lançadas após o lançamento do SQL Server 2008 R2 SP1
Mais Informações
Para monitorar spinlock QUERY_EXEC_STATS , ajustar o atraso e o número de iterações conforme apropriado para seu ambiente no código a seguir e executá-lo:

SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10      BEGIN            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')            WAITFOR DELAY '00:00:05'            SET @counter +=1      ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins

Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2662301 - Última Revisão: 04/12/2012 10:15:00 - Revisão: 1.0

Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard

  • kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMtpt
Comentários
>