Artigo: 2492381 - Última revisão: quinta-feira, 10 de Fevereiro de 2011 - Revisão: 1.0

CORRECÇÃO: SQL Server 2008 R2 efectua mal quando aguardar a maior parte dos threads para o tipo de espera CMEMTHREAD se os threads utilizam variáveis de tabela ou tabelas para carregar ou actualizar conjuntos de linhas de temp

Está disponível transferência de hotfixDisponível transferência de hotfix
Ver e solicitar transferências de hotfix
Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Considere o seguinte cenário:
  • Instalar uma instância do Microsoft SQL Server 2008 R2 num computador.
  • Os threads nesta instância constantemente aguardar oCMEMTHREADtipo de esperar. A maior parte dos threads utiliza variáveis de tabela ou tabelas temporárias para carregar ou actualizar conjuntos de linhas. Por exemplo, a maior parte dos threads executa uma das seguintes declarações:
    • CREATE TABLE
    • CREATE INDEX
  • A contenção para oLOCK_HASHspinlock é elevada. Por exemplo, a contagem de giratório, os possíveis embates e os valores de back-off para oLOCK_HASHaumento de spinlock muito rápido.

    NotaPara mais informações sobre como monitorizar oLOCK_HASHspinlock, consulte a secção "Mais informação".
Neste cenário, SQL Server 2008 R2 poderá funcionar lentamente.

Resolução

Informações sobre a correcção

Existe uma correcção suportada da Microsoft. No entanto, esta correcção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham o problema descrito neste artigo. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pela próxima actualização de software que contenha esta correcção.

Se a correcção está disponível para transferência, isso significa que existe uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não aparecer, contacte o suporte ao cliente da Microsoft para obter a correcção.

NotaCaso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a perguntas de suporte adicionais e problemas que não são elegíveis para esta correcção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente do Microsoft ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
NotaO formulário "Transferência de correcção disponível" apresenta os idiomas para o qual a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Para aplicar esta correcção, tem de ter o Microsoft SQL Server 2008 R2 instalado.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações de substituição de correcções

Esta correcção não substitui quaisquer outras correcções.

Informações de ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas na Hora Universal Coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize aFuso horárioseparador doData e horaitem no painel de controlo.
Instância de núcleo de serviços de base de dados do 32-bit SQL Server 2008 R2
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
atxcore.dll2009.100.1757.013,55208-Jan-110: 37x86
datacollectorcontroller.dll2009.100.1757.0135,5208-Jan-110: 36x86
etwcls.MOFNão aplicável1,116,3286-Jan-1121: 54Não aplicável
instmsdb.SQLNão aplicável2,241,2606-Jan-1120: 23Não aplicável
mssqlsystemresource.ldfNão aplicável524,2886-Jan-1123: 51Não aplicável
mssqlsystemresource.mdfNão aplicável63,569,9206-Jan-1123: 51Não aplicável
sql_engine_core_inst_keyfile.dll2009.100.1757.013,6648-Jan-110: 36x86
sqlaccess.dll2009.100.1757.0415,5848-Jan-110: 34x86
SQLAGENT.exe2009.100.1757.0367,9688-Jan-110: 37x86
sqlagent100_msdb_upgrade.SQLNão aplicável2,371,2456-Jan-1121: 52Não aplicável
sqlos.dll2009.100.1757.014,6888-Jan-110: 25x86
sqlscriptdowngrade.dll2009.100.1757.014,6888-Jan-110: 25x86
sqlscriptupgrade.dll2009.100.1757.04,611,4248-Jan-110: 25x86
sqlservr.exe2009.100.1757.042,899,8088-Jan-110: 37x86
sqsrvres.dll2009.100.1757.089,9528-Jan-110: 25x86
Instância de núcleo de serviços de base de dados do 64 bits SQL Server 2008 R2
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
atxcore.dll2009.100.1757.031,5847-Jan-1123: 36x64
datacollectorcontroller.dll2009.100.1757.026,24967-Jan-1123: 36x64
etwcls.MOFNão aplicável1,116,3286-Jan-1121: 54Não aplicável
instmsdb.SQLNão aplicável2,241,2606-Jan-1120: 23Não aplicável
mssqlsystemresource.ldfNão aplicável524,2886-Jan-1123: 51Não aplicável
mssqlsystemresource.mdfNão aplicável63,569,9206-Jan-1123: 51Não aplicável
sql_engine_core_inst_keyfile.dll2009.100.1757.014,1767-Jan-1123: 36x64
sqlaccess.dll2009.100.1757.0403,2967-Jan-1123: 35x86
SQLAGENT.exe2009.100.1757.0428,3847-Jan-1123: 37x64
sqlagent100_msdb_upgrade.SQLNão aplicável2,371,2456-Jan-1121: 52Não aplicável
sqlos.dll2009.100.1757.015,7127-Jan-1123: 35x64
sqlscriptdowngrade.dll2009.100.1757.015,7127-Jan-1123: 35x64
sqlscriptupgrade.dll2009.100.1757.04,610,9127-Jan-1123: 35x64
sqlservr.exe2009.100.1757.062,007,6487-Jan-1123: 37x64
sqsrvres.dll2009.100.1757.0105,8247-Jan-1123: 35x64
Instância de núcleo de serviços de base de dados do SQL Server 2008 R2 da arquitectura Itanium
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
atxcore.dll2009.100.1757.063,3287-Jan-1123: 01IA-64
datacollectorcontroller.dll2009.100.1757.0477,0247-Jan-1123: 01IA-64
etwcls.MOFNão aplicável1,116,3286-Jan-1121: 54Não aplicável
instmsdb.SQLNão aplicável2,241,2606-Jan-1120: 23Não aplicável
mssqlsystemresource.ldfNão aplicável524,2886-Jan-1123: 51Não aplicável
mssqlsystemresource.mdfNão aplicável63,569,9206-Jan-1123: 51Não aplicável
sql_engine_core_inst_keyfile.dll2009.100.1757.019,2967-Jan-1123: 01IA-64
sqlaccess.dll2009.100.1757.0392,0327-Jan-1122: 59x86
SQLAGENT.exe2009.100.1757.01,205,6007-Jan-1123: 04IA-64
sqlagent100_msdb_upgrade.SQLNão aplicável2,371,2456-Jan-1121: 52Não aplicável
sqlos.dll2009.100.1757.022,3687-Jan-1122: 51IA-64
sqlscriptdowngrade.dll2009.100.1757.020,8327-Jan-1122: 51IA-64
sqlscriptupgrade.dll2009.100.1757.04,617,0567-Jan-1122: 51IA-64
sqlservr.exe2009.100.1757.0121,714,5287-Jan-1123: 04IA-64
sqsrvres.dll2009.100.1757.0188,7687-Jan-1122: 51IA-64

Ponto Da Situação

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

Mais Informação

Para monitorizar oLOCK_HASHspinlock, ajustar o atraso e o número de iterações conforme apropriado para o seu ambiente no seguinte código e, em seguida, executar esse código:
SET NOCOUNT ON
CREATE 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 = 1
WHILE @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
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'LOCK_HASH' ORDER BY InsertTime
DROP TABLE #spins

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Workgroup
Palavras-chave: 
kbautohotfix kbqfe kbHotfixServer kbfix kbexpertiseadvanced kbsurveynew kbmt KB2492381 KbMtpt
Tradução automáticaTraduçã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 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: 2492381  (http://support.microsoft.com/kb/2492381/en-us/ )