quarta-feira, 20 de junho de 2018

SQL SERVER - Comparação de desempenho IN vs OR

Esta são algumas daquelas perguntas que nunca envelhecem e algumas perguntas e eu acredito que,
estaremos repetindo por muitos anos no futuro. Outros dia recebi esta pergunta durante meu trabalho.

Questão era sobre Comparação de Desempenho IN vs OR
Embora pessoalmente, eu já tenha respondido a essa pergunta diversas vezes, aqui no blog podemos detalhar melhor.


Pergunta: Qual é a consulta executada mais rapida? 
  1. A consulta com o operador IN
  2. A consulta com o operador OR
Bem, a resposta é ambos são iguais . Sim, essa é a verdade.
Sim, isso está correto, o mecanismo otimizador do SQL Server mapeia internamente automaticamente todos os valores especificados no operador IN para o operador OR. Como o SQL Server converte IN para OU automaticamente, essas são as principais razões para ambos terem desempenho idêntico.

No entanto, se você examinar cuidadosamente o Operador de Filtro no plano de execução da consulta em que utilizei a condição IN, poderá ver que o plano de execução do SQL Server converteu todos os valores do operador IN para OR automaticamente.  
Deixe um comentário e deixe-me saber se você gostaria de ver qualquer comparação de desempenho semelhante.

referências Pinal Dave.