CORRECÇÃO: Resultados inconsistentes ao executar uma consulta complexa que utiliza o operador de aplicar no SQL Server 2008 R2

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: 2428310
A Microsoft distribui correcções do Microsoft SQL Server 2008 R2 como um ficheiro transferível. Uma vez que as correcções são cumulativas, cada nova edição contém todas as correcções e todas as correcções de segurança que foram incluídas com o SQL Server 2008 R2 anteriores corrigir lançamento.
Sintomas
No Microsoft SQL Server 2008 R2, poderá receber resultados inconsistentes quando executa uma consulta complexa que utiliza oAPLICARoperador.

NotaReceber o resultado correcto neste cenário, se utilizar oORDEM DE FORÇAdica de consulta de uma consulta.
Causa
Este problema ocorre porque o Optimizador de consultas selecciona um plano de execução incorrecta para a consulta.

As alças de optimização da consulta aAGRUPAR PORpredicado para várias colunas de um operador física do plano de execução. No entanto, o operador devolve todas as colunas agrupadas na lista de resultados e não agrupar todas estas colunas. Por conseguinte, a consulta poderá devolver um resultado incorrecto.

NotaUm exemplo de um operador físico é aAgregação de transmissão em sequênciaoperador.

Por exemplo, o Optimizador de consultas gera umGROUP BY ColA, ColBcláusula internamente contra a tabela que se segue:
ColAColB
00
01
O Optimizador de consultas incorrectamente pode gerar um plano de execução que devolve ambos oColAeColBcolunas. Estas colunas estão agrupadas peloColAcoluna da lista de saída. Neste exemplo, a consulta pode devolver aleatoriamente0ou1naColBcoluna se os valores deColAcoluna são0.
Resolução

Informações da atualização cumulativa

SQL Server 2008 R2

A correcção para este problema primeiro foi disponibilizada em 5 de actualização cumulativa. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2438347Pacote de actualização cumulativa 5 do SQL Server 2008 R2
NotaUma vez que as compilações são cumulativas, cada nova versão de correcção contém todas as correcções e todas as correcções de segurança que foram incluídas com o SQL Server 2008 R2 anteriores corrigir lançamento. Recomendamos que considerem a aplicação a mais recente versão de correcção que contenha esta correcção. Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
981356O SQL Server 2008 R2 cria disponibilizadas após o lançamento do SQL Server 2008 R2
Ponto Da Situação
A Microsoft confirmou que este é um problema dos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informação
Para verificar que estão a ter este problema, reveja o plano de execução da consulta problemático e, em seguida, verifique os operadores de grupo. Por exemplo, verificar o operador de agregação de transmissão em sequência, o operador de agregação de hash, o operador de ordenação distinto e o operador de segmento. Se a lista de colunas de saída é maior do que a lista das colunas agrupadas, se deparam com esta questão.
Referências
Para mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
935897Um modelo de assistência incremental está disponível a partir da equipa do SQL Server para proporcionar correcções para problemas comunicados
Para mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
822499Nova esquema de atribuição de nomes para pacotes de actualização de software do Microsoft SQL Server
Para mais informações sobre a terminologia de actualizações de software, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2428310 - Última Revisão: 12/31/2010 07:24:00 - Revisão: 2.0

Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2428310 KbMtpt
Comentários
ERROR: at System.Diagnostics.Process.Kill() at Microsoft.Support.SEOInfrastructureService.PhantomJS.PhantomJSRunner.WaitForExit(Process process, Int32 waitTime, StringBuilder dataBuilder, Boolean isTotalProcessTimeout)