Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was ist eine Lesezeichensuche in SQL Server?

Bei einer Lesezeichensuche werden die tatsächlichen Daten in der SQL-Tabelle basierend auf einem Eintrag in einem nicht geclusterten Index gefunden.

Wenn Sie in einem nicht gruppierten Index nach einem Wert suchen und Ihre Abfrage mehr Felder benötigt, als Teil des Indexblattknotens sind (alle Indexfelder plus alle möglichen INCLUDE-Spalten), muss SQL Server die eigentlichen Daten abrufen Seite(n) - das nennt man Lesezeichensuche.

In einigen Fällen ist dies wirklich der einzige Weg - nur wenn Ihre Abfrage nur ein weiteres Feld (nicht eine ganze Reihe von ihnen) erfordern würde, könnte es eine gute Idee sein, dieses Feld in den nicht gruppierten Index aufzunehmen. In diesem Fall würde der Knoten auf Blattebene des nicht geclusterten Index alle Felder enthalten, die zur Erfüllung Ihrer Abfrage erforderlich sind (ein "deckender" Index), und somit wäre eine Lesezeichensuche nicht mehr erforderlich.

Markus