Forum: Datenbanken
by Namenloser,
7. Aug 2014
Der Join ist kommutativ. Und nur nach deinen Tabellengrößen zu urteilen ist es eben effizienter, es genau umgekehrt zu machen, und aus der Tabelle v2ps die passenden Einträge zur Tabelle v2fertigartikel zu holen.
Forum: Datenbanken
by Namenloser,
7. Aug 2014
Achso, ich dachte ich hätte irgendwo gelesen, dass es noch einen separaten Index gäbe. Aber dann ist das ja auch geklärt.
Forum: Datenbanken
by Namenloser,
7. Aug 2014
Mit den Statistiken ist eigentlich klar, was passiert. v2fertigartikel ist sehr viel kleiner als v2ps, also wird es das Effizienteste sein, v2fertigartikel einmal komplett durchzuscannen (der Index nützt dabei nichts) und sich aus v2ps jeweils die passenden Einträge mittels Index zusammenzuklauben.
Man kann ja mal die Laufzeit verschiedener Verfahren mal über den Daumen abschätzen:...
Forum: Datenbanken
by Namenloser,
6. Aug 2014
Dann gibt es ja auch keine weiteren Datensätze mehr, für die die Join-Bedingung noch erfüllt sein könnte. X und Y sind ja beide sortiert; d.h. man einen Schlüssel A in X erreicht, der größer ist als alle Schlüssel in Y, dann wären alle nachfolgenden Schlüssel von X erst recht größer als alle Schlüssel in Y (und folglich nicht gleich).
Aber du hast natürlich recht, dass die beste Strategie...
Forum: Datenbanken
by Namenloser,
6. Aug 2014
Weil der Nutzen des Index beim Join, soweit ich weiß, hauptsächlich darin besteht, dass durch ihn beide Relationen bezüglich der Verknüpfungs-Spalte sortiert sind. Dadurch kann man einen recht effizienten Merge-Join durchführen.
Folgende Tabellen als Beispiel:
Tabelle X Tabelle Y
A B A C
--------- ---------
1 42 2 0
2 27 3 1
Forum: Datenbanken
by Namenloser,
6. Aug 2014
Kann es sein, dass auf v2ps.status auch ein Index ist, und er diesen im ersten Schritt (bevor er den eigentlichen Join durchführt) verwendet, um die Zeilen von v2ps anhand der where-Bedingung einzugrenzen? Dann kommen anschließend die ids unsortiert heraus, sodass er keinen Merge-Join durchführen kann (und daher von den Indizes auf den id-Spalten nicht profitiert).
Vorausgesetzt, ich habe...