A Microsoft distribui as correções do Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou do Microsoft SQL Server 2012 num ficheiro transferível. Como as correções são cumulativas, cada nova versão 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 o microsoft SQL Server 2012.
Sintomas
Considere o seguinte cenário:
-
Instala uma instância do Microsoft SQL Server 2008 R2 ou do Microsoft SQL Server 2012 num computador.
-
Declarações simultâneas que se assemelham às seguintes são executadas no caso:
CREATE PROC p AS RETURN (
query
); EXEC p;
Ou, você faz uma consulta que contém o seguinte código:
IF EXISTS(
subquery
);
-
O uso do CPU é consistentemente alto, e os fios de trabalho estão em estado de execução.
-
A disputa pelo QUERY_EXEC_STATS spinlock é alta. Por exemplo, a contagem de centrifugação, as possíveis colisões e os valores de recuo para o QUERY_EXEC_STATS aumento rápido.Nota Para obter mais informações sobre como monitorizar o QUERY_EXEC_STATS spinlock, consulte a secção "Mais informações".
Neste cenário, pode ocorrer um desempenho lento.
Causa
Este 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 as caching. Isto causa um estrangulamento de desempenho.
Resolução
Informação de atualização cumulativa
SQL Server 2012
A correção para este problema foi lançada pela primeira vez na Cumulativa Update 1 para o SQL Server 2012. Para obter mais informações sobre este pacote de atualização cumulativa, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2679368 Pacote de atualização cumulativo 1 para SQL Server 2012Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção SQL Server 2012. A Microsoft recomenda que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2692828 O SQL Server 2012 constrói que foram lançados após o lançamento do SQL Server 2012 Deve aplicar um hotfix SQL Server 2012 a uma instalação do SQL Server 2012.
Pacote de atualização cumulativo 5 para SQL Server 2008 R2 SP1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 5. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2 SP1, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2659694 Pacote de atualização cumulativo 5 para SQL Server 2008 R2 SP1Nota Como as construções são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior lançamento de correção R2 SP1 do SQL Server 2008. Recomendamos que considere aplicar o mais recente lançamento de correção que contém este hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2567616 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 SP1
Mais Informações
Para monitorizar a QUERY_EXEC_STATS spinlock, ajuste o atraso e o número de iterações adequadas para o seu ambiente no seguinte código e, em seguida, execute-o:
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
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".