CORRECÇÃO: Quando você executa uma consulta que usa a dica de tabela NOLOCK no SQL Server 2005 ou no SQL Server 2008 para recuperar dados BLOB, a consulta é executada lentamente

Traduções deste artigo Traduções deste artigo
ID do artigo: 961049 - Exibir os produtos aos quais esse artigo se aplica.
A Microsoft distribui correções do Microsoft SQL Server 2005 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todos os as correções de segurança que foram incluídas com o anterior SQL Server 2005 corrigir lançamento.
A Microsoft distribui correções do Microsoft SQL Server 2008 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Você tem uma consulta que usa a dica de tabela NOLOCK no Microsoft SQL Server 2005 ou no Microsoft SQL Server 2008. A consulta lê dados (BLOB) grande objeto binário de um dos seguintes tipos de dados de uma tabela grande:
  • O tipo de dados de texto
  • O tipo de dados nText
  • O tipo de dados de imagem
Quando você executa a consulta, a consulta é executada muito lentamente. Se você examinar a atividade do disco que gera a consulta, você observe que o número de leituras lógicas é muito alto.

Observação Para exibir as atividades de disco, execute a consulta usando a cláusula SET STATISTICS E/S ON.

Causa

Quando a consulta que usa a dica de tabela NOLOCK lê dados BLOB, o SQL Server verifica que cada página BLOB é alocada examinando o mapa de alocação de índice correspondente (IAM). O IAM é uma lista vinculada de alocação de páginas. Cada página IAM pode armazenar cerca de 4 GB de dados (tamanho de página de 8 KB * 8 páginas * 64.000 extensões). Se o objeto for grande, a operação de verificação pode levar a excesso de leituras lógicas.

Por exemplo, você tem um objeto grande mapeado para um grupo de arquivos. O tamanho total dos arquivos no grupo de arquivos é 700 GB. Nessa situação, IAM para este objeto pode conter até 175 páginas. Se você agora executa uma consulta neste objeto usando a dica de tabela NOLOCK e a consulta acessa 10.000 páginas BLOB, o número de leituras lógicas relacionadas a páginas IAM será 175 * 10.000 = 1,750,000 na pior das hipóteses. Se o SQL Server encontrar a página correspondente IAM por desviar metade de lista vinculada, o número médio de leituras lógicas relacionadas a páginas IAM será aproximadamente 1,750,000 / 2 = 875,000. Isso é muito alta uma sobrecarga para incorrer para uma consulta acessar páginas BLOB 10.000.

Resolução

Informações de atualização cumulativa para SQL Server 2005

A correção para esse problema foi lançada primeiro em 3 atualização cumulativa para o SQL Server 2005 Service Pack 3. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2005, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
967909Pacote de atualizações cumulativas 3 para o SQL Server 2005 Service Pack 3
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções de segurança foram incluídas com o anterior SQL Server 2005 corrigir lançamento. Recomendamos que você considere a aplicação a versão de correção mais recente 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:
960598Compilações do SQL Server 2005 lançados após o lançamento do SQL Server 2005 Service Pack 3

Informações de atualização cumulativa para SQL Server 2008

A correção para esse problema primeiro foi lançada em 5 de atualização cumulativa para o SQL Server 2008. Para obter mais informações sobre como obter esse pacote de atualizações cumulativas para o SQL Server 2008, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
969531Pacote de atualizações cumulativas 5 para SQL Server 2008
Observação Como as compilações são cumulativas, cada novo lançamento de correções contém todos os hotfixes e todas as correções segurança que foram incluídas com o SQL Server 2008 anteriores corrigir lançamento. Recomendamos que você considere a aplicação a versão de correção mais recente 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:
956909O SQL Server 2008 compilações que lançadas foram após o lançamento SQL Server 2008 foi lançado

Situação

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

Mais Informações

A correção para esse problema usa o cache IAM para determinar rapidamente se uma página BLOB, na verdade, é alocada.

Para mais informações sobre quais arquivos são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de atualização cumulativa que contém o hotfix descrito neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
967909Pacote de atualizações cumulativas 3 para o SQL Server 2005 Service Pack 3
Para mais informações sobre quais arquivos são alterados e para obter informações sobre quaisquer pré-requisitos para aplicar o pacote de atualização cumulativa que contém o hotfix descrito neste artigo, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
969531Pacote de atualizações cumulativas 5 para SQL Server 2008

Referências

Para obter mais informações sobre a lista de compilações disponibilizadas após o SQL Server 2005 Service Pack 3, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
960598Compilações do SQL Server 2005 lançados após o lançamento do SQL Server 2005 Service Pack 3
Para obter mais informações sobre a lista de compilações disponibilizadas após o SQL Server 2008, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
956909O SQL Server 2008 compilações que lançadas foram após o lançamento SQL Server 2008 foi lançado
Para obter mais informações sobre o modelo incremental de serviços para o SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
935897Há um modelo incremental de serviços da equipe do SQL Server para fornecer hotfixes para problemas relatados
Para obter mais informações sobre o esquema para nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822499Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL Server
Para obter mais informações sobre terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Propriedades

ID do artigo: 961049 - Última revisão: segunda-feira, 18 de maio de 2009 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB961049 KbMtpt
Traduçã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 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: 961049

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com