A Microsoft distribui as correções do Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012 num ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as atualizações de segurança que foram incluídas com a versão anterior do SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012.
Sintomas
Tenha em conta o seguinte cenário:
- Atualizar do Microsoft SQL Server 2005 para o Microsoft SQL Server 2008 ou para o Microsoft SQL Server 2008 R2 ou para o Microsoft SQL Server 2012.
- Executa uma consulta que utiliza a sp_cursoropen procedimento armazenado e, em seguida, especifica o parâmetro rowcount para obter as primeiras linhas de uma tabela.
Neste cenário, o desempenho poderá ser mais lento do que se executar a mesma consulta no SQL Server 2005.
Causa
Este problema ocorre porque o Otimizador de Consultas utiliza um plano de cursor estático em vez de um plano de cursor dinâmico. Para obter um plano de cursor estático, SQL Server obtém todas as linhas e insere-as na tabela de trabalho do cursor. No entanto, para um plano de cursor dinâmico, SQL Server obtém apenas as linhas necessárias.
Resolução
Informações de atualização cumulativa
SQL Server 2012
A correção para esse problema foi lançada pela primeira vez na Atualização Cumulativa 1 de SQL Server 2012. Para obter mais informações sobre este pacote de atualização cumulativa, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
2679368 Pacote de atualizações cumulativas 1 para SQL Server 2012Nota Como as compilaçõ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 SQL Server 2012 corrigir lançamento. A Microsoft recomenda que você considere aplicar o lançamento de correção mais recente que contém esse 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:
2692828 As compilações do SQL Server 2012 lançadas após o lançamento do SQL Server 2012 Tem de aplicar uma correção do SQL Server 2012 a uma instalação do SQL Server 2012.
Pacote de atualizações cumulativas 5 para SQL Server 2008 R2 SP1
Depois de aplicar esse hotfix, habilite o sinalizador de rastreamento 4199.
A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 5. Para mais informações sobre como obter este pacote de actualização cumulativa para o SQL Server 2008 R2 SP1, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:
2659694 Pacote de atualizações cumulativas 5 para SQL Server 2008 R2 SP1Nota: Como as compilaçõ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 SQL Server anterior 2008 R2 SP1 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse 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:
2567616 As compilações do SQL Server 2008 R2 lançadas após o lançamento do SQL Server 2008 R2 SP1
Solução
Para contornar este problema, adicione a sugestão de consulta FAST à consulta.
Mais Informações
Para obter mais informações sobre como usar dicas de consulta, visite o seguinte site da MSDN:
Informações gerais sobre como utilizar sugestões de consulta Para obter mais informações sobre o sinalizador de rastreamento 4199, visite o seguinte site:
Informações gerais sobre o sinalizador de rastreio 4199
Estado
A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".