AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL - SELECT

Ein Thema von Quake · begonnen am 7. Feb 2005 · letzter Beitrag vom 7. Feb 2005
Antwort Antwort
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#1

SQL - SELECT

  Alt 7. Feb 2005, 13:02
Welche Notation ist den bei verknüpften Tabellen zu bevorzugen?
select /* FeldListe */ from TABELLE1, TABELLE2 where TABELLE1.ID = TABELLE2.XX; oder
select /* FeldListe */ from TABELLE1 join TABELLE2 on (TABELLE1.ID = TABELLE2.XX); ciao
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#2

Re: SQL - SELECT

  Alt 7. Feb 2005, 13:22
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:
select /* FeldListe */ 
  from TABELLE1
  join TABELLE2
    on TABELLE1.ID = TABELLE2.XX
 where TABELLE2.YY > 2003;
Ob es performancemäßig einen Unterschied macht, weiß ich nicht, vielleicht entsteht ein unterschiedlicher Query-Plan (wäre allerdings eher unsinnig).

MfG
Urs
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: SQL - SELECT

  Alt 7. Feb 2005, 13:30
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.)
  Mit Zitat antworten Zitat
perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: SQL - SELECT

  Alt 7. Feb 2005, 13:36
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.
  Mit Zitat antworten Zitat
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#5

Re: SQL - SELECT

  Alt 7. Feb 2005, 13:42
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.
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: SQL - SELECT

  Alt 7. Feb 2005, 13:57
Dann versuche ich es mit den JOINs hinzubekommen.
Danke erstmal

ciao
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz