![]() |
SQL - SELECT
Welche Notation ist den bei verknüpften Tabellen zu bevorzugen?
SQL-Code:
oder
select /* FeldListe */ from TABELLE1, TABELLE2 where TABELLE1.ID = TABELLE2.XX;
SQL-Code:
ciao
select /* FeldListe */ from TABELLE1 join TABELLE2 on (TABELLE1.ID = TABELLE2.XX);
|
Re: SQL - SELECT
So weit ich weiß, ist die zweite Form die "modernere" und "offiziellere".
Vom Ergebnis macht es keinen Unterschied. Ich finde es übersichtlicher mit der zweiten Methode, weil man schön zwischen Joins und Sucheinschränkungen unterscheiden kann:
SQL-Code:
Ob es performancemäßig einen Unterschied macht, weiß ich nicht, vielleicht entsteht ein unterschiedlicher Query-Plan (wäre allerdings eher unsinnig).
select /* FeldListe */
from TABELLE1 join TABELLE2 on TABELLE1.ID = TABELLE2.XX where TABELLE2.YY > 2003; MfG Urs |
Re: SQL - SELECT
In der IBConsole kann man sich den Query-Plan ja anguggen und da sieht man, daß die Pläne sich unterscheiden. Ich habe bis jetzt auch immer mit der JOIN-Variante gearbeitet aber jetzt muss ich eine SQL-Abfrage dynamisch erzeugen und da ist es einfacher die Variante ohne JOIN zu verwenden.
Oder könnte es sein, daß nicht jeder SQL-Server das JOIN versteht? (Währe in meinem Fall aber auch egal den Firebird kann dat.) |
Re: SQL - SELECT
bei größeren Tabellen macht das einen uU sehr großen Performanceunterschied, denn bei Methode 1 (ohne Join) werden erstmal beide Ergebnisse der Selectabfragen durchgeführt und anschließend gegenseitig verglichen ob gleiche Elemente vorhanden sind.
Beim join wird direkt bei der Abfrage verglichen und die Gleichen Elemente zurückgegeben. |
Re: SQL - SELECT
Hmm, ich habe ein (einfaches) Beispiel mit IBExpert nachgestellt und zweimal den gleichen Plan bekommen...
MfG Urs P.S.@perle: Offenbar ist der Firebird-Optimizer da schlauer, er gibt auch bei der "WHERE"-Konstruktion den Join als Plan an. |
Re: SQL - SELECT
Dann versuche ich es mit den JOINs hinzubekommen.
Danke erstmal ciao :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz