Thema: Delphi Left Join macht Probleme

Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Left Join macht Probleme

  Alt 13. Mär 2005, 18:54
Datenbank: Firebird 1.5 • Version: 1.5.2.4371 • Zugriff über: IBOConsole , IBX
Hallo,
ich habe ein Problem mit einem Left Join. Es ist mir unerklärlich.
Ich arbeite unter P4 HT, 3GHz, 1GByte Arbeitsspeicher.

tab_1 hat ca 250.000 Datensätze
tab_2 hat ca. 4.000 Datensätze
Da es sich um relative wenig Datensätze handelt ist das Ganze noch mysteriöser

Diese Query wird einwandfrei ausgeführt. Dauer ca 30 Sekunden.
SQL-Code:
SELECT tab_1.JAHR, tab_1.KENNER, tab_1.ENTITY, tab_1.SORTER,
           tab_1.DIVISION, tab_1.PARTNER, tab_1.BWA,
           tab_1.POSNR, tab_2.BEZ
FROM tab_1 INNER JOIN tab_2 ON (tab_1.posnr=tab_2.gvkonto) and (tab_1.kenner=tab_2.kenner)
ORDER BY tab_1.JAHR, tab_1.KENNER, tab_1.ENTITY, tab_1.SORTER
Access 2003 schafft die Abfrage in ca 15 Sekunden

Wenn ich aus dem Join eine Left Join mache stürzt der Firebird scheinbar ab.
Ob die Query mit der IBOConsole oder über IBX abschicke ist egal.
(Sollte hier auch egal sein)
SQL-Code:
SELECT tab_1.JAHR, tab_1.KENNER, tab_1.ENTITY, tab_1.SORTER,
           tab_1.DIVISION, tab_1.PARTNER, tab_1.BWA,
           tab_1.POSNR, tab_2.BEZ
FROM tab_1 LEFT JOIN tab_2 ON (tab_1.posnr=tab_2.gvkonto) and (tab_1.kenner=tab_2.kenner)
ORDER BY tab_1.JAHR, tab_1.KENNER, tab_1.ENTITY, tab_1.SORTER
Access 2003 schafft die Abfrage in ca 15 Sekunden

Um der Sache auf den Grund zu gehen habe ich eine neue Datenbank registriert und dort zwei Tabllen
angelegt. TabelleA hat 11 und TabelleB hat 3 Datensätze. Damit funktioniert der Left Join
SQL-Code:
SELECT tabellea.id,tabellea.feld1,tabelleb.feld1 as Name
FROM tabellea LEFT JOIN tabelleb ON tabellea.feld1=tabelleb.feld1
 ORDER BY tabellea.feld1, tabellea.id
Hat schon jemand gehört, dass der Firebird Probleme mit einem Left Join hat?
[EDIT] Ob ich LEFT JOIN oder LEFT OUTER JOIN schreibe macht keinen Unterschied[/EDIT]
I come from outer space to save the human race
  Mit Zitat antworten Zitat