Las diferencias entre SQL existe y en
Sql existe vs en
La solución de problemas en TSQL está disponible a través de diferentes métodos y los resultados deseados se pueden ver utilizando cualquiera de ellos. Una de las formas en que se pueden lograr los resultados finales es mediante el uso de las cláusulas IN y EXISTS. El uso de las cláusulas ayuda a la filtración del conjunto de resultados con referencia a una subconsulta que está disponible. La ejecución de IN y EXISTS difiere ligeramente y son estas diferencias las que se evalúan.
Hay varios factores que determinan si se lanzará o no IN o EXISTS. Uno de ellos es la cantidad de datos disponibles en la tabla. Una gran cantidad de datos hace que el servidor SQL vuelva a usar un escaneo de índice en lugar de usar una búsqueda de índice.
Diferencias
Las estadísticas proporcionadas también dicen mucho sobre el plan de ejecución que se debe seguir. La diferencia se muestra cuando el servidor ha acumulado suficientes estadísticas para tomar una decisión válida y cuando no hay estadísticas la primera vez. El hardware en uso también determina si se empleará IN o EXISTS. Esto depende en gran medida de la cantidad de CPU disponibles.
EXISTS se ejecuta cuando es necesario hacer coincidir los resultados de una consulta con otra subconsulta. Por otro lado, IN se utiliza para recuperar los valores de columnas específicas que se encuentran dentro de una lista. La decisión de cuál usar se basa únicamente en lo apropiado, es decir, cuando considera que su uso es apropiado.
En el caso de que se use una subconsulta y se devuelva un valor nulo, toda la declaración se convierte en NULL. Esto, en efecto, apunta al uso de la palabra clave EXISTS. El uso de la palabra clave IN se produce cuando se requiere una comparación de varios valores en subconsultas. La palabra clave EXISTS se usa principalmente en la evaluación de declaraciones verdaderas o falsas y IN se usa en la mayoría de las declaraciones de subconsultas correspondientes.
En general, EXISTS será más rápido que IN, la razón es que cuando se ejecutan EXISTS, la búsqueda ha encontrado un resultado y revisará si la condición ha demostrado ser cierta. Cuando se ejecuta IN, recopila todos los resultados de la subconsulta y los presenta para su procesamiento posterior, y este proceso toma un tiempo.
Es importante tener en cuenta que la redacción de la consulta debe realizarse correctamente y debe comprobarse antes de ejecutarse. Si no se asegura de que la consulta sea correcta, los resultados para EXISTS e IN presentan diferentes valores, y este no es el objetivo de su uso en el servidor SQL. El optimizador siempre debe ser óptimo cuando funciona como debería.
Resumen
La resolución de problemas en TSQL se realiza comúnmente con EXISTS e IN.
Se observan pequeñas diferencias al desplegar EXISTS e IN, aunque la optimización para cada uno debe dar el mismo valor.
Las estadísticas son uno de los determinantes de si EXISTS o IN se implementarán
El hardware en uso también es crítico para determinar si EXISTS o IN deben implementarse
La ejecución de EXISTS será útil cuando sea necesario correlacionar los resultados de una consulta dada con otra subconsulta. EXISTS también es muy común cuando las afirmaciones verdaderas o falsas necesitan evaluación.
IN se usa comúnmente cuando hay una necesidad de recuperar columnas específicas en una lista. También se usa comúnmente cuando se requiere la comparación de valores en subconsultas.
EXISTS es generalmente más rápido que IN a medida que se ejecuta, encuentra un hit y revisa si la condición ha demostrado ser cierta
IN es más lento, ya que recopila todos los resultados de la subconsulta y la procesa.
Aunque existen diferentes ejecuciones, la optimización debe dar resultados similares en EXISTS e IN.