Olá pessoal.
Vamos ao um case real, é bom ter essas histórias do dia-a-dia, pois assim ficamos mais ligeiros para não perder tempo fazendo o que seria mais simples, veja a seguir:
Um belo dia você lá no seu trabalho todo preocupado em manter a perfomance do seu ambiente, aí você olha para o lado e vê um dos desenvolvedores tentando montar uma query, ele olha para você e diz que está fazendo uma consulta simples, porém está demorando muito e para completar ainda pergunta se está tudo bem no banco?
Você todo inocente fala:
“Aqui tudo bem, sem lock, por enquanto…”, e completa, precisa de ajuda?
O desenvolvedor aproveita, diz que deve ser muitos dados… Nessa hora você pensa, deixa eu ver o plano de execução dessa sua consulta, manda a query aí para eu ver o plano dela.
Aí você já parte para o CTRL+M (Teclas de atalho para habilitar o plano de execução no SSMS – SQL Server Management Studio) e após a execução da query, você se depara com a figura abaixo:

Você que está aprendendo tudo sobre performance, se pergunta:
Que erro é esse aí? Como surgiu? E comenta em voz baixa nunca vi isso aí não…
Procura nas apostilas da faculdade e nada, aí você para e pensa, deixa eu ver essa query melhor, quando passa conferindo os joins, percebe que o JOIN está errado, pronto, problema resolvido.

veja como resolver:
O exemplo da query abaixo é o mais simples para facilitar nosso entendimento.
A causa do erro:

Alterando a junção entre a tabela A e a Tabela B, problema resolvido, assim deixando sua query mais rápida e correta.
Agora já sabemos que um operador com erro, devemos verificar se não está faltando um predicate, pois a falta dele na junção(Join) causa o erro visto no operador.
Espero ter ajudado com mais essa dica.
Até mais.
Felippe Oliveira





