Warum funktioniert dieser sql-Abfrage machen einen Schlüssel-lookup?
Ich habe eine Tabelle Benutzer mit einer Reihe von Indizes. Einer von Ihnen ist ein eindeutiger index auf die AccountIdentifier Spalte.
Da dies ein eindeutiger index ist, warum ist ein Schlüssel-lookup erforderlich, zusätzlich zu den index-Suche? Der index seek-tooltip Berichte, dass nur ein Datensatz zurückgegeben wird. Ich habe auch versucht, die Umwandlung der index zu einer "eindeutigen Schlüssel" geben.
alt-text http://s3.amazonaws.com/brandonc.baconfile.com/pitchurs/tmp/capture_2.png
InformationsquelleAutor der Frage BC. | 2010-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil es sich um die Auswahl
*
.Es nutzt die nicht gruppierten index zu suchen Sie die Zeile(N) aber dann muss gehen Sie und Holen Sie die Daten zurück.
Zu vermeiden, die bookmark lookup müssen Sie den nicht gruppierten index in einen abdeckenden index (idealerweise, indem die Anzahl der Spalten in der select-Liste aber auch möglich, durch hinzufügen von neuen Spalten in den index selbst oder als eingeschlossene Spalten enthalten)
Wenn Sie einen gruppierten index für die Tabelle die Zeile locator in den nicht gruppierten index gehören dem Schlüssel des gruppierten index, so dass Sie nicht brauchen, ein bookmark lookup zu befriedigen Abfragen, die nur auf die
AccountIdentifier
und clustered-index-Spalten.InformationsquelleAutor der Antwort Martin Smith
Schlüssel-lookup bedeutet nicht "suchen-Taste", aber "die Suche nach der Zeile, basierend auf den Schlüssel".
InformationsquelleAutor der Antwort erikkallen
Sehen Sie diesen Artikel und blog-posts für mehr hintergrund-info auf Schlüssel suchen /bookmark lookups:
InformationsquelleAutor der Antwort marc_s