Existem diferenças entre Sql e In

Sql existe vs vs

A solução de problemas no TSQL está disponível através de diferentes métodos e os resultados desejados podem ser vistos usando qualquer um deles. Uma das maneiras pelas quais os resultados finais podem ser alcançados é através do uso das cláusulas IN e EXISTS. O uso das cláusulas ajuda a filtrar o conjunto de resultados com referência a uma subconsulta disponível. A execução de IN e EXISTS difere um pouco e são essas diferenças que são avaliadas.

Existem vários fatores que determinam se IN ou EXISTS serão lançados ou não. Um deles é a quantidade de dados disponível na tabela. Uma quantidade enorme de dados resulta no retorno do SQL Server ao uso de uma verificação de índice, em vez de usar uma Busca de Índice.

Diferenças

As estatísticas fornecidas também dizem muito sobre o plano de execução que deve ser seguido. A diferença é mostrada quando o servidor acumulou estatísticas suficientes para tomar uma decisão válida e quando não há estatísticas na primeira vez. O hardware em uso também determina se IN ou EXISTS serão empregados. Isso depende muito do número de CPUs disponíveis.

EXISTS são executados quando é necessário combinar os resultados de uma consulta com outra subconsulta. IN, por outro lado, é usado ao recuperar os valores de colunas específicas que estão dentro de uma lista. A decisão de qual usar é baseada exclusivamente na adequação, ou seja, quando você sente que seu uso é apropriado.

Caso uma subconsulta seja usada e um valor nulo seja retornado, a instrução inteira se tornará NULL. Isso, na verdade, aponta para o uso da palavra-chave EXISTS. O uso da palavra-chave IN ocorre quando é necessária uma comparação de vários valores nas subconsultas. A palavra-chave EXISTS é usada principalmente na avaliação de instruções verdadeiras ou falsas e IN é usada na maioria das instruções de subconsulta correspondentes.

Em geral, EXISTS será mais rápido que IN, o motivo é que, quando EXISTS são executados, a pesquisa encontrou um acerto e analisará se a condição provou ser verdadeira. Ao executar IN, ele coleta todos os resultados da subconsulta e os apresenta para processamento adicional, e esse processo leva um tempo.

É importante observar que o fraseado da consulta deve ser feito corretamente e verificado antes de ser executado. Falha ao garantir que a consulta tenha resultados corretos para EXISTS e IN apresentando valores diferentes, e esse não é o objetivo de seu uso no SQL server. O otimizador sempre deve ser ideal ao trabalhar como deveria.

Sumário

A solução de problemas no TSQL geralmente é feita com EXISTS e IN.

Pequenas diferenças são observadas ao lançar EXISTS e IN, embora a otimização para cada um deva dar o mesmo valor.

A estatística é um dos determinantes para o lançamento de EXISTS ou IN.

O hardware em uso também é crítico para determinar se EXISTS ou IN deve ser implantado

A execução de EXISTS será útil quando houver necessidade de correlacionar os resultados de uma determinada consulta com outra subconsulta. EXISTS também é muito comum quando declarações verdadeiras ou falsas precisam ser avaliadas.

IN é comumente usado quando é necessário recuperar colunas específicas em uma lista. Também é comumente usado quando a comparação de valor em subconsultas é necessária.

EXISTS é geralmente mais rápido que IN, pois é executado, encontra um resultado e analisa se a condição se provou verdadeira

IN é mais lento, pois coleta todos os resultados da subconsulta e os processa.

Embora existam execuções diferentes, a otimização deve gerar resultados semelhantes em EXISTS e IN.