CORRECÇÃO: Quando executar uma consulta que utiliza o mínimo ou a função máx contra uma vista com partições em SQL Server 2008, a consulta é executada muito mais lenta do que quando executar a mesma consulta no SQL Server 2005

Traduções de Artigos Traduções de Artigos
Artigo: 973255 - Ver produtos para os quais este artigo se aplica.
A Microsoft distribui correcções Microsoft SQL Server 2008 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 no SQL Server 2008 anterior corrigir lançamento.
Expandir tudo | Reduzir tudo

Sintomas

No SQL Server 2008, criar uma vista com partições. Executar uma consulta que utiliza a função agregada mínimo ou máximo contra a vista com partições. No entanto, poderá encontrar executa a consulta muito mais lenta no SQL Server 2008 do que se executar a mesma consulta no SQL Server 2005.

Se examinar o plano de execução da consulta, descobrir de que o operador TOP apresenta no plano de execução no SQL Server 2005. No entanto, o operador TOP não apresenta no plano de execução no SQL Server 2008.

Por exemplo, o plano de execução no SQL Server 2005 se assemelhe ao seguinte:
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))
       |--Concatenation
            |--Top(TOP EXPRESSION:((1)))
            |    |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
            |--Top(TOP EXPRESSION:((1)))
                 |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
no entanto, o plano de execução da mesma consulta no SQL Server 2008 se assemelhe ao seguinte:
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))
       |--Concatenation
            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))
            |    |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))
            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))
                 |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))

Causa

O motor de base de dados SQL apresenta uma regra que converte as funções de agregação mínimo e máximo para utilizar TOP operador (1) e o operador de procurar índice no plano de execução. No entanto, neste cenário, a regra não funciona no SQL Server 2008. Por conseguinte, um índice errado é utilizado na vista de partição. Isto faz com que o problema de desempenho.

Resolução

A correcção para este problema foi primeiro disponibilizada em actualização cumulativa 4 para o SQL Server 2008 Service Pack 1. Para obter mais informações sobre este pacote de actualização cumulativa, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
973602Pacote de actualização cumulativa 4 para o SQL Server 2008 Service Pack 1
Nota Uma 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 no SQL Server 2008 anterior corrigir lançamento. A Microsoft recomenda que considerar a aplicação a mais recente versão de correcção que contenha esta correcção. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
970365Cria o SQL Server 2008 que foram disponibilizadas após o lançamento do SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 correcções são criadas para service packs do SQL Server específicos. Tem de aplicar uma correcção do SQL Server 2008 Service Pack 1 para uma instalação do SQL Server 2008 Service Pack 1. Por predefinição, qualquer correcção fornecida num service pack SQL Server está incluída no próximo service pack do SQL Server.
Tem de activar o sinalizador de rastreamento 4199 para esta correcção entrem em vigor.

Ponto Da Situação

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

Referências

Para obter mais informações sobre o modelo de assistência incremental para o SQL Server, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
935897Um modelo de assistência incremental está disponível a partir da equipa do SQL Server para proporcionar correcções para problemas comunicados


Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
822499Novo esquema de atribuição de nomes para pacotes de actualização de software Microsoft SQL Server


Para obter mais informações sobre a terminologia de actualizações de software, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

Propriedades

Artigo: 973255 - Última revisão: 22 de setembro de 2009 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbmt kbsurveynew kbfix kbqfe kbexpertiseadvanced KB973255 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 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: 973255

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