KB2649913 - CORREÇÃO: o desempenho pode diminuir quando executa uma consulta que utiliza o procedimento armazenado sp_cursoropen depois de atualizar do SQL Server 2005 para o SQL Server 2008, para o SQL Server 2008 R2 ou para o SQL Server 2012

Aplica-se A
SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Workgroup SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Express with Advanced Services SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard

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".