A Microsoft distribui as correções R2 do Microsoft SQL Server 2008 como um ficheiro transferível. Como as correções são cumulativas, cada nova versã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 de R2008 do SQL Server 2008.
Sintomas
No Microsoft SQL Server 2008 R2, poderá receber resultados inconsistentes quando executar uma consulta complexa que utiliza o operador APPLY. Nota Recebe o resultado correto neste cenário se utilizar a indicação da ordem de força numa consulta.
Causa
Esta questão ocorre porque o otimizador de consulta seleciona um plano de execução incorreto para a consulta. O otimizador de consulta trata o GRUPO POR predicado para as múltiplas colunas num operador físico do plano de execução. No entanto, o operador produz todas as colunas agrupadas na lista de saída e não agrupar todas estas colunas. Portanto, a consulta pode devolver um resultado incorreto. Nota Um exemplo de um operador físico é o operador agregado de fluxo. Por exemplo, o otimizador de consulta gera uma cláusula GROUP BY ColA, ColB internamente contra a seguinte tabela:
ColA |
ColB |
---|---|
0 |
0 |
0 |
1 |
O otimizador de consultas pode gerar incorretamente um plano de execução que devolve as colunas ColA e ColB. Estas colunas são agrupadas pela coluna ColA na lista de saída. Neste exemplo, a consulta pode devolver aleatoriamente 0 ou 1 na coluna ColB se os valores na coluna ColA forem 0.
Resolução
Informação de atualização cumulativa
SQL Server 2008 R2
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 SQL Server 2008 R2, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
2438347 Pacote de atualização cumulativa 5 para SQL Server 2008 R2 Nota 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 R2008 do SQL Server 2008. 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:
981356 O SQL Server 2008 R2 constrói que foram lançados após o lançamento do SQL Server 2008 R2
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informações
Para verificar se está a passar por este problema, reveja o plano de execução da consulta problemática e, em seguida, verifique os operadores do grupo. Por exemplo, verifique o operador agregado de fluxos, o operador agregado de haxixe, o operador de classificação distinto e o operador do segmento. Se a lista das colunas de saída for maior do que a lista das colunas agrupadas, está a experimentar este problema.
Referências
Para obter mais informações sobre o Modelo de Manutenção Incremental para O Servidor SQL, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
935897 Um Modelo de Manutenção Incremental está disponível na equipa do SQL Server para entregar hotfixes para problemas relatadosPara obter mais informações sobre o esquema de nomeação para atualizações do SQL Server, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
822499Novo esquema de nomeação para pacotes de atualização de software do Microsoft SQL ServerPara obter mais informações sobre a terminologia da atualização do software, clique no seguinte número de artigo para ver o artigo na Base de Conhecimento da Microsoft:
824684Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft