A Microsoft distribui o Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou o Microsoft SQL Server 2012 correções em um arquivo que pode ser baixado. 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 na versão anterior do SQL Server 2008 R2 Service Pack 1 (SP1) ou do Microsoft SQL Server 2012 atualização.
Sintomas
Considere o seguinte cenário:
-
Você atualiza 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.
-
Você executa uma consulta que usa o procedimento armazenado sp_cursoropen e, em seguida, especifica o parâmetro RowCount para buscar as primeiras várias linhas de uma tabela.
Nesse cenário, o desempenho pode ser menor do que se você executar a mesma consulta no SQL Server 2005.
Causa
Esse problema ocorre porque o otimizador de consultas usa um plano de cursor estático em vez de um plano de cursor dinâmico. Para um plano de cursor estático, o SQL Server busca todas as linhas e as insere na tabela de trabalho do cursor. No entanto, para um plano de cursor dinâmico, o SQL Server busca apenas as linhas necessárias.
Resolução
Informações sobre a atualização cumulativa
SQL Server 2012
A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 para SQL Server 2012. Para obter mais informações sobre esse pacote de atualizações cumulativas, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2679368 Pacote de atualização cumulativa 1 para SQL Server 2012Observação 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 incluídas na versão anterior do SQL Server 2012 Fix. A Microsoft recomenda que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos 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 Você deve aplicar um hotfix 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 esse 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 do SQL Server 2008 R2 SP1, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:
2659694 Pacote de atualizações cumulativas 5 para SQL Server 2008 R2 SP1Observação 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 incluídas na versão anterior do SQL Server 2008 R2 SP1. Recomendamos que você considere a aplicação do lançamento de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler os artigos na Base de Dados de Conhecimento Microsoft:
2567616 As compilações do SQL Server 2008 R2 que foram lançadas após a liberação do SQL Server 2008 R2 SP1
Solução alternativa
Para contornar esse problema, adicione a dica de consulta rápida à consulta.
Informações adicionais
Para obter mais informações sobre como usar dicas de consulta, acesse o seguinte website da MSDN:
Informações gerais sobre como usar dicas de consultaPara obter mais informações sobre o sinalizador de rastreamento 4199, acesse o seguinte site:
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".