2016-04-12 7 views
1

i wenig Hilfe benötigen bitte diese Frage jemand antworten eine von drei Beziehungen verbinden Bedenken Sie: r natürliche s beitreten natürlichen Join tAbfrageverarbeitung (Natural Join)

Da kommen kommutativ und assoziativ, könnte das System beitreten r und s zuerst, s und t zuerst, oder r und t zuerst, und dann verbinden Sie die verbleibende Beziehung mit dem Ergebnis. Wenn das System genau abschätzen kann. Wie groß das Ergebnis eines Joins sein wird, ohne den Join tatsächlich zu berechnen, sollte es zuerst

1.the Join mit dem größten Ergebnis 2.the Join mit dem kleinsten Ergebnis wählen.

Warum?

Antwort

0

Durch die Verknüpfung mit dem kleinsten Ergebnissatz können Sie den Arbeitsaufwand in der Zukunft reduzieren.

Betrachten Sie den Fall, in dem Sie 10 Relationen mit jeweils 1.000.000 Elementen verbinden, wissend, dass jeder Join in der Größenordnung von (10^6)^2 Elementen erzeugt und dann mit einer Beziehung mit 10 Elementen verknüpft wird Ergebnis wird nur 10 Elemente sein). Vergleichen Sie dies mit einem Fall, in dem Sie zuerst mit der Beziehung mit 10 Elementen beginnen.

+0

so ist die beste Methode, Beziehungen mit kleinsten Ergebnissen zuerst zu verbinden. Recht? und können Sie bitte andere wichtige Gründe für diese Aktion angeben? –

+0

können Sie einen anderen Grund für diese Aktion angeben. eigentlich ist dies eine meiner Aufgabenfragen –

+0

Vergleichen Sie "nehmen Sie soziale_Sicherheitsdaten, verbinden Sie sich mit Adressen auf Namen, verbinden Sie sich mit Telefonnummern auf Namen, verbinden Sie mit my_brothers auf Namen" (wo my_brothers hat 1 Element) vs "nimm meine_brothers, beitreten mit Adressen auf Name, Join mit Telefonnummern auf Name, Join mit Social_Security auf Name "- was wird effizienter? Wenn Sie etwas im Telefonbuch und dann auf der Karte nachsehen, beginnen Sie mit der Suche nach einem bestimmten Eintrag im Telefonbuch und dann nach seiner Adresse auf der Karte. Oder treten Sie zuerst dem Telefonbuch mit der Karte bei und dann mit dem Namen, den Sie kennen? – ADEpt