Différences entre Sql existe et dans Différence entre

Anonim

Sql Existe vs In

La résolution de problèmes dans TSQL est disponible par différentes méthodes et les résultats souhaités peuvent être vus en utilisant n'importe lequel d'entre eux. Une des façons dont les résultats finaux peuvent être atteints est l'utilisation des clauses IN et EXISTS. L'utilisation des clauses aide à filtrer l'ensemble de résultats en faisant référence à une sous-requête disponible. L'exécution de IN et EXISTS diffère légèrement et ce sont ces différences qui sont évaluées.

Différents facteurs déterminent si IN ou EXISTS sera déployé. L'un d'eux est la quantité de données disponibles dans le tableau. Une quantité importante de données entraîne le retour du serveur SQL à l'utilisation d'un scan d'index plutôt que l'utilisation d'une recherche d'index.

Différences

Les statistiques données en disent long sur le plan d'exécution à suivre. La différence est affichée lorsque le serveur a accumulé suffisamment de statistiques pour prendre une décision valide et lorsqu'il n'y a pas de statistiques la première fois. Le matériel utilisé détermine également si IN ou EXISTS sera utilisé. Cela dépend en grande partie du nombre de CPU disponibles.

EXISTS est exécuté lorsqu'il est nécessaire de faire correspondre les résultats d'une requête avec une autre sous-requête. IN d'autre part est utilisé lors de la récupération des valeurs de colonnes spécifiques qui se trouvent dans une liste. La décision d'utiliser est basée uniquement sur la pertinence, i. e. quand vous sentez que son utilisation est appropriée.

Dans le cas où une sous-requête est utilisée et qu'une valeur nulle est renvoyée, l'instruction entière devient NULL. Cela indique en fait l'utilisation du mot clé EXISTS. L'utilisation du mot clé IN survient lorsqu'une comparaison de différentes valeurs dans des sous-requêtes est requise. Le mot clé EXISTS est principalement utilisé dans l'évaluation des instructions vraies ou fausses et IN est utilisé dans la plupart des instructions de sous-requête correspondantes.

En général, EXISTS sera plus rapide que IN, la raison étant que lorsque EXISTS est exécuté, la recherche a trouvé un hit et vérifiera si la condition s'est avérée vraie. Lors de l'exécution de IN, il collecte tous les résultats de la sous-requête et les présente pour un traitement ultérieur, ce qui prend un certain temps.

Il est important de noter que la formulation de la requête doit être correcte et vérifiée avant d'être exécutée. Si vous ne vous assurez pas que la requête est correcte, EXISTS et IN présentent des valeurs différentes, ce qui n'est pas le but de leur utilisation dans le serveur SQL. L'optimiseur doit toujours être optimal lorsque vous travaillez comme il le devrait.

Résumé

La résolution de problèmes dans TSQL est généralement effectuée avec EXISTS et IN.

De légères différences sont observées lors du déploiement de EXISTS et IN, bien que l'optimisation de chacune d'entre elles devrait donner la même valeur.

Les statistiques sont l'un des déterminants de la sortie de EXISTS ou IN

Le matériel utilisé est également critique pour déterminer si EXISTS ou IN doit être déployé

Le fonctionnement de EXISTS sera utile lorsqu'il existe besoin de corréler les résultats d'une requête donnée avec une autre sous-requête.EXISTS est également très commun lorsque les déclarations vraies ou fausses doivent être évaluées.

IN est couramment utilisé lorsqu'il est nécessaire de récupérer des colonnes spécifiques dans une liste. En outre, il est couramment utilisé lorsque la comparaison de valeur dans les sous-requêtes est requise.

EXISTS est généralement plus rapide que IN lorsqu'il s'exécute, trouve un hit et vérifie si la condition s'est avérée vraie

IN est plus lent car il collecte tous les résultats de la sous-requête et les traite.

Bien que différentes exécutions soient présentes, l'optimisation devrait donner des résultats similaires dans EXISTS et IN.