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]
