Michael Schröpl: INNER JOIN Problem - Dringend

Beitrag lesen

Hi,

Das hab ich schon gemacht, nur habe ich 5 Tabellen die ineinander verschachtelt sind. Mit Datensätzen von 400000, 200000, 26000, 3000, 80000. Das dauert viel zu lange, leider !

wenn Du solche Datenmengen hast, dann nützt das einfach nur Hinschreiben einer SQL-Query in vielen Fällen nichts mehr. Dann solltest Du Dir einen Ausführungsplan machen.

  • Wie hoch ist die individuelle Treffer-Quote Deiner Query in jeder der fünf Tabellen?
  • Kannst Du die JOINs so sortieren, daß zunächst zwischen den Tabellen mit den wahrscheinlich geringsten Trefferzahlen geJOINt wird?

Natürlich solltest Du vermeiden, Deine Tabellen voll miteinander auszumultiplizieren.
Bei einer "richtigen" Datenbank gibt es dazu viele Möglichkeiten, bei Oracle beispielsweise "hints".
In Deinem Falle könnte eine geeignete Indexstruktur über die Tabellen schon viel helfen - für Details müßte ich aber Deine gesamte Datenbankstruktur kennen und verstehen.

Dein Fall ist ein schönes Beispiel dafür, daß Datenbankdesign eben doch mehr ist als gutes DML, nämlich auch gutes DDL. Es besteht eine gute Chance, daß die Lösung Deines Problems *nicht* in dem entsprechenden SELECT-statement steckt, sondern in der Definition Deiner Tabellen.

mfG - Michael