Erstellen nicht gruppierter Indizes
Sie können mehrere nicht gruppierte Indizes für eine Tabelle oder eine indizierte Sicht erstellen. Im Allgemeinen werden nicht gruppierte Indizes erstellt, um die Leistung häufig verwendeter Abfragen zu optimieren, die nicht vom gruppierten Index abgedeckt werden.
Typische Implementierungen
Nicht gruppierte Indizes werden auf folgende Weise implementiert:
- PRIMARY KEY- und UNIQUE-Einschränkungen
Wenn Sie eine PRIMARY KEY-Einschränkung erstellen, wird automatisch ein eindeutiger gruppierter Index für die Spalte(n) erstellt, wenn noch kein gruppierter Index für die Tabelle vorhanden ist und Sie keinen eindeutigen nicht gruppierten Index angeben. Die Primärschlüsselspalte darf keine NULL-Werte zulassen.
Wenn Sie eine UNIQUE-Einschränkung erstellen, wird ein eindeutiger nicht gruppierter Index erstellt, um standardmäßig eine UNIQUE-Einschränkung zu erzwingen. Sie können einen eindeutigen gruppierten Index angeben, wenn noch kein gruppierter Index für die Tabelle vorhanden ist. Weitere Informationen finden Sie unter PRIMARY KEY-Einschränkungen und UNIQUE-Einschränkungen. - Index unabhängig von einer Einschränkung
Wenn der gruppierte Index nicht angegeben wird, wird standardmäßig ein nicht gruppierter Index erstellt. Pro Tabelle können höchstens 249 nicht gruppierte Indizes erstellt werden. Dies schließt die Indizes ein, die durch PRIMARY KEY- oder UNIQUE-Einschränkungen erstellt wurden, nicht jedoch XML-Indizes. - Nicht gruppierter Index für eine indizierte Sicht
Nachdem ein eindeutiger gruppierter Index für eine Sicht erstellt wurde, können nicht gruppierte Indizes erstellt werden. Weitere Informationen finden Sie unter Erstellen von indizierten Sichten.
Index mit eingeschlossenen Spalten
Wenn Sie einen nicht gruppierten Index für eine Abfrage erstellen, können Sie Nichtschlüsselspalten in die Indexdefinition einschließen, um die Spalten in der Abfrage abzudecken, die nicht als primäre Suchspalten verwendet werden. Leistungsvorteile werden erzielt, weil der Abfrageoptimierer alle erforderlichen Spaltendaten im Index finden kann; auf den Tabellen- oder gruppierten Index wird nicht zugegriffen. Weitere Informationen finden Sie unter Index mit eingeschlossenen Spalten.
Anforderungen an den Speicherplatz
Informationen zu den Speicherplatzanforderungen für nicht gruppierte Indizes finden Sie unter Ermitteln der Speicherplatzanforderungen für Indizes.
Überlegungen zur Leistung
Zwar ist es wichtig, dass der Index alle von der Abfrage verwendeten Spalten enthält, Sie sollten jedoch das Hinzufügen nicht erforderlicher Spalten vermeiden. Das Hinzufügen einer zu großen Anzahl von Schlüssel- oder Nichtschlüsselindexspalten kann zu folgenden Leistungseinbußen führen:
- Eine geringere Anzahl von Indexzeilen passt auf eine Seite. Dies führt zu einer Zunahme der Datenträger-E/A sowie zu einer verringerten Cacheeffizienz.
- Zum Speichern des Indexes ist eine größere Menge an Speicherplatz erforderlich.
- Die Indexwartung kann zu einem größeren Zeitaufwand für das Ausführen von Änderungen, Einfügungen, Aktualisierungen oder Löschvorgängen an der zugrunde liegenden Tabelle oder indizierten Sicht führen.
Sie sollten überprüfen, ob die Steigerungen der Abfrageleistung die negativen Auswirkungen auf die Leistung während der Datenänderung sowie hinsichtlich zusätzlicher Speicherplatzanforderungen aufwiegen. Weitere Informationen zum Auswerten der Abfrageleistung finden Sie unter Optimieren von Abfragen.
So erstellen Sie eine PRIMARY KEY- oder UNIQUE-Einschränkung, wenn Sie eine Tabelle erstellen
So erstellen Sie eine PRIMARY KEY- oder UNIQUE-Einschränkung für eine vorhandene Tabelle
So erstellen Sie einen Index
Siehe auch
Konzepte
Erstellen von Indizes (Datenbankmodul)
Entwurfsrichtlinien für einen nicht gruppierten Index