Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

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 incluídas na versão anterior do SQL Server 2008 R2 Service Pack 1 (SP1) ou do SQL Server 2012 Update.

Sintomas

Considere o cenário a seguir. Você executa uma consulta no Microsoft SQL Server 2008 R2 ou no Microsoft SQL Server 2012, e o otimizador de consulta gera um plano de execução que contém a operadora superior. Nesse cenário, a consulta pode levar muito tempo para ser executada. Por exemplo, você executa uma consulta semelhante à seguinte:

SELECT TableA.Col1 FROM TableA JOIN TableB ON TableA.Col1 = TableB.Col1 WHERE TableA.Col2 = N'A' AND TableB.Col3 IN (SELECT Col1 FROM TableC )Esta consulta envolve duas junções. Uma junção está entre TableB e TableC. (Isso é implícito pela presença do predicado IN.) A outra junção se encontra entre a tabela A e o resultado da primeira junção. O predicado IN retornará verdadeiro se a consulta encontrar pelo menos uma linha que satisfaça o primeiro predicado de junção. Portanto, o otimizador de consultas adiciona a operador superior ao plano de execução de consulta. Tal consulta pode retornar apenas algumas linhas. No entanto, pode demorar mais tempo para executar essa consulta do que era esperado. No plano de execução de consulta real, o número estimado de linhas difere significativamente do número real de linhas. Isso afeta a capacidade do otimizador de consultas estimar precisamente o custo para diferentes opções de plano. O problema também pode ocorrer se você usar a operador TOP explicitamente ou se usar um dos seguintes operadores:

  • OPÇÃO (RÁPIDO N)

  • NO

  • EXISTÊNCIA

Resolução

Informações sobre a atualização cumulativa

SQL Server 2008 R2 Service Pack 2

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 2. Para obter mais informações sobre como obter esse pacote de atualização cumulativa, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2720425 Pacote de atualização cumulativa 1 para SQL Server 2008 R2 Service Pack 2Observaçã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. 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:

2730301 Versões do SQL Server 2008 R2 lançadas após a liberação do SQL Server 2008 R2 Service Pack 2

SQL Server 2008 R2 Service Pack 1

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 7 para SQL Server 2008 R2 Service Pack 1. Para obter mais informações sobre como obter esse pacote de atualização cumulativa, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2703282 Pacote de atualizações cumulativas 7 para SQL Server 2008 R2 Service Pack 1Observaçã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. 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 o lançamento do SQL Server 2008 R2 Service Pack 1

SQL Server 2012

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 2 do 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:

2703275 Pacote de atualizações cumulativas 2 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.

SQL Server 2008 R2

A correção para esse problema foi lançada pela primeira vez na atualização cumulativa 13. Para obter mais informações sobre como obter este pacote de atualização cumulativa do SQL Server 2008 R2, clique no número abaixo para ler o artigo na base de dados de conhecimento da Microsoft:

2679366 Pacote de atualizações cumulativas 13 para SQL Server 2008 R2Observaçã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. 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:

981356 As compilações do SQL Server 2008 R2 que foram lançadas após a liberação do SQL Server 2008 R2Observação Depois de instalar a atualização cumulativa, você deve ativar o sinalizador de rastreamento 4199 para habilitar a correção fornecida nesta atualização cumulativa se as seguintes condições forem verdadeiras:

  • O plano de consulta tem uma operador TOP acima de um operador de junção de loop aninhado (junção 1) no lado direito de outro operador APPLY/Join (Join 2).

  • O lado externo da junção 1 tem uma referência externa ao lado externo da junção 2.

  • A junção 1 usa um predicado de igualdade em uma coluna do lado esquerdo que é exclusivo.

Um exemplo de tal consulta é exibido na seção "sintomas". (Isso pressupõe que existam algumas restrições de exclusividade no banco de dados.) Se houver outras consultas que contenham os operadores TOP, OPTION (FAST N), IN ou EXISTs e produzirem sintomas semelhantes, mas não caibam no padrão descrito aqui, ative o sinalizador de rastreamento 4138.Aviso Se você habilitar o sinalizador de rastreamento 4138, o desempenho poderá diminuir para outras consultas que contenham os operadores TOP N, OPTION (FAST N), IN ou EXISTs. O sinalizador de rastreamento 4138 deve ser usado somente quando as seguintes condições forem verdadeiras:

  • Seu efeito sobre consultas lentas que envolvem esses operadores é confirmado.

  • Não há outras soluções alternativas úteis.

  • Não foram detectadas regressões em outras consultas que contêm operadores semelhantes.

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Solução alternativa

Para contornar esse problema, use o operador de junção externa esquerda ou qualquer uma das várias dicas de OTIMIZAdor.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×