Diferenças entre Sql existe e em Diferença entre
Sql existe vs Em
A resoluçã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 como os resultados finais podem ser alcançados é através do uso de cláusulas IN e EXISTS. O uso das cláusulas ajuda a filtragem do conjunto de resultados com referência a uma subconsulta que está disponível. A execução de IN e EXISTS difere ligeiramente e são essas diferenças que são avaliadas.
Existem vários fatores que determinam se o IN ou EXISTS serão lançados ou não. Um deles é o valor de dados disponível na tabela. Uma grande quantidade de dados resulta no retorno do servidor SQL ao uso de uma verificação de índice ao invés de usar um Index Seek.
Diferenças
As estatísticas fornecidas também contam 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 pela primeira vez. O hardware em uso também determina se IN ou EXISTS serão empregados. Isso depende em grande parte do número de CPU disponível.
EXISTS são executados quando há necessidade de coincidir com resultados de uma consulta com outra subconsulta. IN, por outro lado, é usado ao recuperar os valores de colunas específicas que se encontram dentro de uma lista. A decisão de usar é baseada unicamente na adequação, i. e. quando você sente que seu uso é apropriado.
No caso em que uma subconsulta é usada e um valor nulo é retornado, a declaração inteira se torna NULL. Isso, de fato, aponta para o uso da palavra-chave EXISTS. O uso da palavra-chave IN ocorre quando uma comparação de vários valores em subconsultas é necessária. A palavra-chave EXISTS é usada principalmente na avaliação de declarações verdadeiras ou falsas e IN é usado na maioria das declarações de subconsulta correspondentes.
Em geral, o EXISTS será mais rápido do que o IN, razão pela qual, quando EXISTS são executados, a pesquisa encontrou um golpe e será analisar se a condição provou ser verdadeira. Ao executar o IN, ele coleta todos os resultados da subconsulta e os apresenta para processamento posterior, e este processo demora um pouco.
É importante notar que o fraseado da consulta deve ser feito corretamente e ser verificado antes de ser executado. Falha em garantir que a consulta seja um resultado correto para EXISTS e IN apresentando valores diferentes, e este não é o objetivo de sua utilização no servidor SQL. O otimizador deve sempre ser ótimo ao trabalhar como deveria.
Resumo
A resolução de problemas no TSQL é comumente feita com EXISTs e IN.
Diferenças ligeiras são observadas ao desenrolar EXISTS e IN, embora a otimização para cada um dê o mesmo valor.
As estatísticas são um dos determinantes de se EXISTS ou IN será lançado
O hardware em uso também é crítico para determinar se EXISTS ou IN deve ser implantado
O funcionamento do EXISTS será útil quando houver precisa 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 há necessidade de recuperar colunas específicas em uma lista. Também é comumente usado quando a comparação de valores em subconsultas é necessária.
EXISTS é geralmente mais rápido do que IN, pois ele corre, encontra um hit e analisa se a condição provou ser verdadeira
IN é mais lenta, pois coleta todos os resultados da subconsulta e os processa.
Embora existam diferentes execuções, a otimização deve dar resultados semelhantes em EXISTs e IN.