J'ai deux questions que je suis lequel dois-je utiliser? p> Union code> ensemble de telle sorte que je sache déjà qu'il n'y aura aucun élément en double entre les deux requêtes. Par conséquent,
Union code> et
Union Tout code> produira les mêmes résultats. P>
5 Réponses :
Vous devez utiliser celui qui correspond à l'intention de ce que vous recherchez. Si vous voulez vous assurer qu'il n'y ait aucun doublon, qui dit, Union code>, utilisez sinon utiliser
Union tout code>. Ce n'est pas parce que vos données produiront les mêmes résultats en ce moment em> ne signifie pas que cela le fera toujours. P>
Union Tout code> sera plus rapide sur toute implémentation de la base de données SANE, voir les articles ci-dessous pour des exemples. Mais typiquement, ils sont les mêmes sauf que
Union code> effectue une étape supplémentaire pour éliminer les lignes identiques (comme on pouvait s'attendre à ce que cela puisse attendre de dominer l'heure d'exécution. P>
Étant donné que les données sont tirées de deux tables non liées qui contiennent des GUIDS, je sais que les deux requêtes ne seront jamais dupliquées entre les deux requêtes.
@Mark - Ce n'est pas gaufrette, il répond à deux saveurs de la question. La principale question posée est "laquelle dois-je utiliser?" et la réponse est "Utilisez celui qui correspond à votre intention". La question implicite i> est "qui serait plus rapide d'utiliser?", Et la réponse il y a Union tout code>
@Billy Onealk Ok, c'est un cas où vous pourrez être extrêmement convaincu que les données qui ne produisent aucun doublure ne produiront pas toujours aucun doublage, au moins sur toute l'architecture que vous utilisez actuellement depuis que je doutez que vous épuissez l'espace GUID à tout moment. :)
J'utiliserais Ainsi, juste pour fournir des informations supplémentaires à DB Server, afin que son planificateur de requête soit un meilleur choix (probablement), utilisez ayant dit que, si votre planificateur de requête STRAND> DB Server STRY> S est suffisamment intelligent pour déduire que les informations de la clause code> Union code> et des index de table, des résultats (performances et sémantiques sage) devrait être la même. p>
Dans les deux cas, cela dépend fortement du serveur Union tout code> de toute façon. Même si
Union tout code>. P>
selon
Je vois que vous avez étiqueté cette question de questions, alors je suppose que c'est votre considération principale. P>
Sauf si vous avez besoin de SQL pour effectuer la vérification duplicate pour vous, utilisez toujours Union Tout code> surperformez-vous absolument
Union code> puisque SQL n'a pas à vérifier les deux ensembles pour les DUPS. P>
Union tout code>. p>
Je pense qu'il le sait déjà. Il demande spécifiquement dans le scénario qu'il sait (et probablement dB sait également) il ne va pas y avoir de DUPS.
Je ne comprends pas ton point. Demandez-vous: "Si SQL peut déterminer qu'il n'y aura jamais de chevauchements dans les deux ensembles, optimisera-t-il l'union code> de sorte qu'il n'a pas à comparer, ce qui le rendait de manière identique à union Tout code>? Réponse: non. Utilisez
Union tout code>
Comme il n'y aura pas de doublons des deux utilisations de l'Union. Vous n'avez pas besoin de vérifier les doublons et le syndicat tout préférera la tâche plus efficacement. p>