2016-06-03 3 views
0

Ich wurde im Interview gefragt, warum Daten für Merge und Merge Join Transformation sortiert werden müssen? Ich weiß, dass wir Merge und Merge Join ohne Sortierung verwenden können, indem wir die Daten an der Quelle sortieren und einige Eigenschaften festlegen. Aber noch müssen Daten sortiert werden, bitte sagen Sie mir, warum es obligatorisch ist?In SSIS, warum Eingabe für Merge/Merge Join muss sortiert werden?

+0

Der Merge-Join-Algorithmus erfordert, dass die Daten sortiert werden. Es ist eine Annahme, die der Algorithmus macht, und macht es zu einem sehr effizienten Algorithmus. Alternativ erfordert der Nested Loops Join-Algorithmus _nicht_, dass Daten sortiert werden müssen. Lesen Sie, wie Merge Join und Nested Loop-Algorithmen funktionieren und Sie vielleicht besser verstehen. Um es anders auszudrücken: Sie können einen Join mit Verschachtelungsschleife oder einen Merge-Join für sortierte Daten verwenden, aber ein Merge-Join wäre schneller. –

Antwort

0

Es beschleunigt die Anpassung erheblich. Wenn Sie zwei Kartenstapel abbilden, die unvollständige Karten sind, und Sie die gemeinsamen Karten unter ihnen finden möchten.

Versuchen Sie zuerst, die Decks zu mischen, legen Sie sie nebeneinander, legen Sie sie nach oben. Sag auf der linken Seite, dass du die Pik-Zehn bekommst, und durchsuche nun das Deck auf der rechten Seite nach den Pik-Zehn. Da es nicht bestellt ist, musst du vielleicht jede Karte anschauen, um die Pik-Zehn am Ende des Decks zu finden.

Jetzt sortieren Sie diese Decks nach Anzug und Wert und versuchen Sie die gleiche Übung und Sie sollten jetzt verstehen, wie Sortierung hilft. Der Prozess der Sortierung benötigt Zeit und Ressourcen, aber viel weniger als sortierte Listen, und der Unterschied wächst exponentiell, wenn die Anzahl der Datensätze (Karten) auf Millionen steigt.

Verwandte Themen