Welche der beiden wäre eine bessere Leistung (ich vor kurzem mit meinem Code nicht vorsichtig zu sein, weil ich die später in Oracle verwendet beschuldigt wurde):Exists/nicht vorhanden ist: ‚1 wählen‘ vs ‚Auswahlfeld‘
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)
Oder sind sie beide gleich?
Bitte beantworten Sie beide aus SQL Server Perspektive sowie Oracle Perspektive.
Ich habe gegoogled (meist von SQL-Server-Seite) und festgestellt, dass es noch eine Menge Debatte darüber, obwohl meine derzeitige Meinung/Annahme ist der Optimierer in beiden RDMBS sind reif genug zu verstehen, dass alles, was erforderlich ist aus der Unterabfrage ist ein boolescher Wert.
Kein Unterschied, sie sind beide gleich. Überprüfen Sie den Ausführungsplan für beide zu überprüfenden Abfragen. –
Werfen Sie einen Blick auf diese Antwort .. http://stackoverflow.com/a/6140367/2975396 – TheGameiswar