Festlegen von Indexoptionen

Beim Entwerfen, Erstellen oder Ändern eines Index müssen verschiedene Indexoptionen berücksichtigt werden. Diese Optionen können entweder beim erstmaligen Erstellen eines Index oder beim Neuerstellen eines Index angegeben werden. Außerdem können Sie einige der Indexoptionen jederzeit durch Verwenden der SET-Klausel in der ALTER INDEX-Anweisung festlegen.

Indexoption

Beschreibung

In Metadaten gespeicherte Einstellung

Verwandtes Thema

PAD_INDEX

Bestimmt den Prozentsatz des freien Speicherplatzes in den Zwischenebenenseiten bei der Indexerstellung.

Ja

Füllfaktor

FILLFACTOR

Bestimmt den Prozentsatz des freien Speicherplatzes auf der Blattebene jeder Seite bei der Indexerstellung.

Ja

Füllfaktor

SORT_IN_TEMPDB

Bestimmt, wo die Sortierzwischenergebnisse, die bei der Indexerstellung generiert werden, gespeichert werden.

Bei ON werden die Sortierergebnisse in tempdb gespeichert. Bei OFF werden die Sortierergebnisse in der Dateigruppe oder im Partitionsschema gespeichert, in der bzw. in dem der resultierende Index gespeichert wird.

HinweisHinweis
Wenn kein Sortiervorgang erforderlich ist oder die Sortierung im Arbeitsspeicher erfolgen kann, wird SORT_IN_TEMPDB ignoriert.

Nein

tempdb und Indexerstellung

IGNORE_DUP_KEY

Gibt die Fehlermeldung an, wenn ein Einfügevorgang versucht, doppelte Schlüsselwerte in einen eindeutigen Index einzufügen. Die Option IGNORE_DUP_KEY gilt nur für Einfügevorgänge nach dem Erstellen oder Neuerstellen des Index. Die Standardeinstellung ist OFF.

Ja

CREATE INDEX

STATISTICS_NORECOMPUTE

Gibt an, ob veraltete Indexstatistiken automatisch neu berechnet werden sollen.

Ja

Indexstatistiken

DROP_EXISTING

Gibt an, dass der vorhandene Index gelöscht und neu erstellt werden soll.

Nein

Neuorganisieren und Neuerstellen von Indizes

ONLINE

Bestimmt, ob während Indexvorgängen der gleichzeitige Benutzerzugriff auf die Daten der zugrunde liegenden Tabelle oder des gruppierten Index und aller zugehörigen nicht gruppierten Indizes zulässig ist.

HinweisHinweis
Online-Indexvorgänge sind nur in der SQL Server Enterprise, Developer und Evaluation Edition verfügbar.

Nein

Ausführen von Onlineindexvorgängen

ALLOW_ROW_LOCKS

Bestimmt, ob beim Zugreifen auf Indexdaten Zeilensperren verwendet werden.

Ja

CREATE INDEX

Anpassen der Sperren für einen Index

ALLOW_PAGE_LOCKS

Bestimmt, ob beim Zugreifen auf Indexdaten Seitensperren verwendet werden.

Ja

CREATE INDEX

Anpassen der Sperren für einen Index

MAXDOP

Legt die maximale Anzahl der Prozessoren fest, die der Abfrageprozessor zum Ausführen einer einzelnen Indexanweisung verwenden darf. In Abhängigkeit von der aktuellen Systemlast können auch weniger Prozessoren verwendet werden.

HinweisHinweis
Parallele Indexvorgänge sind nur in der SQL Server Enterprise, Developer und Evaluation Edition verfügbar.

Nein

Ändern von Indizes

DATA_COMPRESSION

Gibt die Datenkomprimierungsoption für die angegebene Tabelle, die Partitionsnummer oder den Bereich von Partitionen an. Optionen sind NONE, ROW und PAGE.

Ja

Erstellen komprimierter Tabellen und Indizes

So legen Sie die Optionen für einen Index fest

Festlegen von Optionen ohne Neuerstellung

Mithilfe der SET-Klausel in der ALTER INDEX-Anweisung können Sie die folgenden Indexoptionen festlegen, ohne den Index neu erstellen zu müssen:

  • ALLOW_PAGE_LOCKS

  • ALLOW_ROW_LOCKS

  • IGNORE_DUP_KEY

  • STATISTICS_NORECOMPUTE

Diese Optionen werden sofort auf den Index angewendet. Dagegen können andere Indexoptionen wie z. B. FILLFACTOR und ONLINE nur beim Erstellen oder Neuerstellen eines Index angegeben werden.

Anzeigen der Indexoptionseinstellungen

Nicht alle Indexoptionswerte werden in den Metadaten gespeichert. Die in den Metadaten gespeicherten Werte können in den entsprechenden Katalogsichten angezeigt werden. Zum Überprüfen der aktuellen Optionseinstellungen für vorhandene Indizes verwenden Sie die sys.indexes-Katalogsicht. Zum Überprüfen des aktuellen Werts für STATISTICS_NORECOMPUTE verwenden Sie die sys.stats-Katalogsicht. Weitere Informationen finden Sie unter Anzeigen von Indexinformationen.

Beispiele

Mit dem folgenden Beispiel werden die Optionen ALLOW_ROW_LOCKS und IGNORE_DUP_KEY für den AK_Product_ProductNumber-Index der Production.Product-Tabelle festgelegt.

USE AdventureWorks;
GO
--Verify the current values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes 
WHERE name = N'AK_Product_ProductNumber';
GO
--Set the ALLOW_ROW_LOCKS option OFF and the IGNORE_DUP_KEY option ON.
ALTER INDEX AK_Product_ProductNumber       
ON Production.Product       
SET (ALLOW_ROW_LOCKS = OFF, IGNORE_DUP_KEY = ON);
GO
--Verify the new values for these options.
SELECT allow_row_locks, ignore_dup_key
FROM sys.indexes 
WHERE name = N'AK_Product_ProductNumber';
GO