Existe / n'existe pas: 'select 1' vs 'sélectionnez le champ'

Où l'un des deux plus performant(j'ai récemment été accusée de ne pas être prudent avec mon code, car j'ai utilisé plus tard dans Oracle):

Select * 
from Tab1
Where (not) exists(Select 1 From Tab2 Where Tab1.id = Tab2.id)


Select * 
from Tab1
Where (not) exists(Select Field1 From Tab2 Where Tab1.id = Tab2.id)

Ou les deux sont-ils identiques?

Veuillez répondre à la fois à partir de SQL Server perspective ainsi que l'Oracle de la perspective.

J'ai googlé (surtout à partir de sql-server side) et constaté qu'il ya encore beaucoup de débat sur ce bien que, à mon avis/hypothèse est l'optimiseur dans les deux RDMBS sont assez matures pour comprendre que tout ce qui est nécessaire à partir de la sous-requête est une valeur Booléenne.

Pas de différence, ils sont tous deux de même. Vérifier le plan d'exécution pour les deux requêtes pour vérifier.
Jetez un oeil à cette réponse..stackoverflow.com/a/6140367/2975396

OriginalL'auteur anonxen | 2014-10-20