Freigeben über


Grundlegendes zu Nested Loops-Verknüpfungen

Die Nested Loops-Verknüpfung, auch geschachtelte Iteration genannt, verwendet eine Verknüpfungseingabe als äußere Eingabetabelle (im grafischen Ausführungsplan als obere Eingabe dargestellt) und eine zweite Verknüpfungseingabe als innere (untere) Eingabetabelle. Die äußere Schleife verarbeitet die äußere Eingabetabelle zeilenweise. Die innere Schleife wird für jede äußere Zeile ausgeführt und sucht übereinstimmende Zeilen in der inneren Eingabetabelle.

Im einfachsten Fall wird beim Suchvorgang eine Tabelle oder ein Index vollständig gescannt; dieser Vorgang wird als naive Nested Loops-Verknüpfung bezeichnet. Wenn die Suche einen Index verwendet, wird dies eine indizierte Nested Loops-Verknüpfung genannt. Wird der Index als Teil des Abfrageplanes erstellt (und nach Beendigung der Abfrage gelöscht), wird dies eine temporäre indizierte Nested Loops-Verknüpfung genannt. Alle beschriebenen Varianten werden vom Abfrageoptimierer berücksichtigt.

Eine Nested Loops-Verknüpfung ist besonders wirksam, wenn die äußere Eingabe klein und die innere Eingabe vorindiziert und umfangreich ist. In vielen kleinen Transaktionen, die beispielsweise nur wenige Zeilen betreffen, sind indizierte Nested Loops-Verknüpfungen sowohl Zusammenführungsverknüpfungen als auch Hashverknüpfungen überlegen. In umfangreichen Abfragen dagegen sind Nested Loops-Verknüpfungen häufig nicht die optimale Wahl.

Siehe auch

Verweis

Anzeigen von grafischen Ausführungsplänen (SQL Server Management Studio)

Konzepte

Grundlegendes zu Verknüpfungen
Logische und physikalische Operatoren (Referenz)

Andere Ressourcen

Analysieren einer Abfrage

Hilfe und Informationen

Informationsquellen für SQL Server 2005