Liebe Liste,

vielleicht habe ich mich auch nur dusselig angestellt, aber bevor jemand 
anderem hier das Gleiche passiert ein kurzer Hinweis zu optimalen Abfragen:

Ich hatte per Hand eine Abfrage konstruiert, die Daten mehrere Tabellen 
miteinander verknüpfte. Passte bei einer geringen Datensatzzahl hervorragend. 
Dann habe ich das Ganze mit ca. 800 Datensätzen befüllt - und die Abfrage 
führte immer dazu, dass der Prozessor auf Vollast lief und ich nach einiger 
Zeit dann nur noch OpenOffice "killen" konnte. Jetzt habe ich etwas probiert, 
das Ganze auch mit der GUI zusammengeklickt und die Abfrage gestartet: Nur ein 
kurzes Zucken und das Ergebnis war da. Wo lag der Fehler?

Kurz am Beispiel von 3 Tabellen erklärt:
Tabelle 1 "Mitglied" ist mit Tabelle 2 "Gruppe" über den Fremdschlüssel 
"gruID" verbunden. Tabelle 2 "Gruppe" ist mit Tabelle 3 "Adresse" über den 
Fremdschlüssel "adrID" verbunden.
Meine Abfrage:
SELECT ... FROM Adresse, Mitglied, Gruppe WHERE Mitglied.gruID = Gruppe.ID and 
Gruppe.adrID = Adresse.ID

Die optimierte Abfrage:
SELECT ... FROM Mitglied, Gruppe, Adresse  WHERE Mitglied.gruID = Gruppe.ID 
AND Gruppe.adrID = Adresse.ID

Da das Ganze über 6 Tabellen ging hatte ich die Tabellenreihenfolge in ein 
heilloses Durcheinander gebracht, die Beziehungen zwar richtig deklariert aber 
einen unheimlich hohen Traffic verursacht. Also: Auch wenn es prinzipiell 
funktioniert, die Reihenfolge in der FROM-Bedingung und auch die in der WHERE-
Bedingung (halbwegs) beliebig zu wählen macht es doch Sinn, die von der 
Struktur vorgegebene Reihenfolge zu übernehmen. Ansonsten funktioniert 
irgendwann gar nichts mehr.

Gruß

Robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an