CORRECÇÃO: A contenção de spinlock SOS_CACHESTORE na cache de plano de SQL Server ad hoc provoca utilização elevada da CPU no SQL Server 2012 ou 2014

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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 3026083
Sintomas
Quando insere simultâneas demasiados ocorre no mesmo balde hash ou o respectivo limite de entrada de 160,036 de acertos de cache de plano ad hoc do SQL Server, ocorre a contenção grave no SOS_CACHESTORE spinlock. Nesta situação, uma elevada utilização da CPU ocorre no Microsoft SQL Server 2012 ou SQL Server 2014.
Causa
O problema ocorre porque, quando a cache do plano de SQL Server atinge o limite de entrada, planos de baixo custo deve ser expulso para inserir novos planos. Isto conduz a contenção grossa para a spinlock SOS_CACHESTORE que fornece a sincronização para os recipientes da tabela hash da cache do plano de servidor de SQL.
Resolução

Informações sobre a actualização cumulativa

O problema foi corrigido pela primeira vez na actualização cumulativa do SQL Server.

Acerca de actualizações cumulativas para o SQL Server

Cada nova actualização cumulativa para o SQL Server contém todas as correcções e todas as correcções de segurança que foram incluídas com a anterior actualização cumulativa. Verifique as actualizações mais recentes cumulativas para o SQL Server:
Mais Informação
A cache do plano tem dois limites, o tamanho total e o número total de todos os planos. Os limites de tamanho e a entrada contagem são explicados no livro branco Planear Internals de Cache. O número máximo de entradas que pode conter uma cache do plano é quatro vezes da contagem de recipientes. Pode verificar estas informações utilizando consultas seguintes:
select name, type, buckets_count from sys.dm_os_memory_cache_hash_tableswhere name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' ) select name, type, pages_kb, entries_count from sys.dm_os_memory_cache_counterswhere name IN ( 'SQL Plans' , 'Object Plans' ,  'Bound Trees' )
Por exemplo, em sistemas de 64 bits, os registos para a cache do plano de SQL Server é 40,009. Por conseguinte, o número máximo de entradas que pode caber dentro da cache do plano de SQL Server é 160,036. Quando tiver uma carga de trabalho que está a utilizar diferentes consultas ad hoc, este limite pode tornar-se um congestionamento. Nestes casos, pode utilizar a alteração nesta correcção. Depois de instalar esta correcção e activar a alteração utilizando o rastreio de arranque do sinalizador -T 174. o, a contagem de balde é aumentada para 160,001 em sistemas de 64 bits. Por conseguinte, a cache de plano agora pode conter um número máximo de 640,004 planos.
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3026083 - Última Revisão: 06/24/2015 06:42:00 - Revisão: 4.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3026083 KbMtpt
Comentários