Sintomas
Assuma que consulta uma coluna binária de objeto grande (BLOB) no Microsoft SQL Server 2008 R2 ou no Microsoft SQL Server 2012 num computador que tem vários CPUs. A consulta utiliza a sugestão NOLOCK. Nesta situação, você experimenta um elevado uso de CPU no computador.NotaEste problema é mais provável se o computador tiver 16 ou mais CPUs instalados.
Causa
Este problema ocorre porque um algoritmo de backoff de spinlock não é eficiente.
Resolução
Informação de atualização cumulativa
Atualização Cumulativa 2 para SQL Server 2012 SP1
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 2. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2012 SP1, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2790947 Pacote de atualização cumulativo 2 para SQL Server 2012 Service Pack 1Nota Como as construções são cumulativas, cada novo lançamento 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 SP1 DO SQL Server 2012. 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:
2772858 O SQL Server 2012 constrói que foram lançados após o lançamento do SQL Server 2012 Service Pack 1
Atualização Cumulativa 5 para SQL Server 2012
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 o SQL Server 2012, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2777772 Pacote de atualização cumulativo 5 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. 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:
2692828 O SQL Server 2012 constrói que foram lançados após o lançamento do SQL Server 2012
Sql Server 2008 R2 Service Pack 2
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa para SQL Server 2008 R2 Service Pack 2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2754552 Pacote de atualização cumulativo 3 para SQL Server 2008 R2 Service Pack 2Nota 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 do SqL Server 2008 R2 Service Pack 2. 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:
2730301 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2 Service Pack 2
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Solução
Para contornar a questão, utilize um dos seguintes métodos:
-
Diminua o tamanho da coluna binária de objetos grandes.
-
Retire a sugestão NOLOCK da consulta.
-
Reduza o número de CPUs que o SQL Server utiliza.