ID do artigo: 2222998 - Última revisão: sexta-feira, 20 de agosto de 2010 - Revisão: 3.0

Correcção: uma estimativa de cardinalidade incorreto é retornada quando você executa uma consulta no SQL Server 2005, SQL Server 2008 ou SQL Server 2008 R2

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.
Microsoft distribui o Microsoft SQL Server 2005, Microsoft SQL Server 2008 ou o Microsoft SQL Server 2008 R2 resolve como um arquivo para download. Porque as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior Microsoft SQL Server 2005, Microsoft SQL Server 2008 ou o Microsoft SQL Server 2008 R2 a correção de liberação.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Quando você executa uma consulta no Microsoft SQL Server 2005, o Microsoft SQL Server 2008 ou o Microsoft SQL Server 2008 R2, uma previsão de cardinalidade incorreto é retornada. Por exemplo, quando você executa a consulta, o número de linhas real é maior que 2000. No entanto, o número de linhas estimado é 1. Esse problema ocorre quando as seguintes condições forem verdadeiras:
  • a consulta contém pelo menos uma cláusula JOIN.
  • Existem várias colunas na cláusula WHERE.
  • Otimizador do SQL Server usa o operador de junção de Semi Anti a associação de dados.

Resolução

SQL Server 2005 Service Pack 3

Primeiro, o a correção para esse problema foi lançado em 11 da atualização cumulativa para o SQL Server 2005 Service Pack 3. Para obter mais informações sobre esse pacote cumulativo de atualização, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2258854  (http://support.microsoft.com/kb/2258854/LN/ ) 11 Para SQL Server 2005 Service Pack 3 do pacote de atualização cumulativo
Observação:Porque as compilações são lançamento de correções cumulativas, cada nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2005 anteriores corrigir o lançamento. A Microsoft recomenda que você considere a aplicação a versão mais recente de correção 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:
960598  (http://support.microsoft.com/kb/960598/LN/ ) O SQL Server 2005 baseia-se que foram lançados após o lançamento do SQL Server 2005 Service Pack 3
Os hotfixes do Microsoft SQL Server 2005 de são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2005 Service Pack 3 para uma instalação do SQL Server 2005 Service Pack 3. Por padrão, nenhum hotfix é fornecido em um SQL Server service pack está incluído no próximo do SQL Server service pack.

SQL Server 2008 Service Pack 1

a correção para esse problema foi lançado pela primeira vez na atualização cumulativa 9 para o SQL Server 2008 Service Pack 1. Para obter mais informações sobre esse pacote cumulativo de atualização, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2083921  (http://support.microsoft.com/kb/2083921/LN/ ) atualização cumulativa 9 para o SQL Server 2008 Service Pack 1
Observação:Porque as compilações são lançamento de correções cumulativas, cada nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o SQL Server 2008 anteriores corrigir o lançamento. A Microsoft recomenda que você considere a aplicação a versão mais recente de correção 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:
970365  (http://support.microsoft.com/kb/970365/LN/ ) O SQL Server 2008 baseia-se que foram lançados após o lançamento do SQL Server 2008 Service Pack 1
Os hotfixes do Microsoft SQL Server 2008 de são criados para service packs do SQL Server específicos. Você deve aplicar um hotfix do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por padrão, nenhum hotfix é fornecido em um SQL Server service pack está incluído no próximo do SQL Server service pack.

Situação

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

Mais Informações

Pode exibir as linhas estimadas para a consulta, observando aEstimateRowscoluna de saída SHOWPLAN_ALL ou da saída STATISTICS PROFILE.

Para obter mais informações sobre o operador Join de Semi Anti, visite os seguintes sites da MSDN (Microsoft Developer Network):
Semi Anti RIGHT Join Operator Showplan (http://msdn.microsoft.com/en-us/library/ms177472(sql.100).aspx)
À esquerda anti operador de Showplan Semi associação (http://msdn.microsoft.com/en-us/library/ms191171(sql.100).aspx)
Para obter mais informações sobre o modelo de serviços incrementais para SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
935897  (http://support.microsoft.com/kb/935897/ ) É de um modelo de serviços incrementais disponível da equipe do SQL Server para fornecer hotfixes para problemas relatados
Para obter mais informações sobre o esquema de 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:
822499  (http://support.microsoft.com/kb/822499/ ) Pacotes de atualização do novo esquema para nomeação para o software do Microsoft SQL Server

Para obter mais informações sobre a terminologia da atualização de software, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684  (http://support.microsoft.com/kb/824684/ ) Descrição da terminologia padrão que é usada para descrever as atualizações de software

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 Workgroup Edition
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Enterprise
Palavras-chave: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbtshoot kbmt KB2222998 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 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: 2222998  (http://support.microsoft.com/kb/2222998/en-us/ )