Festlegen von Indexoptionen
Beim Entwerfen, Erstellen oder Ändern eines Indexes müssen verschiedene Indexoptionen berücksichtigt werden. Diese Optionen können entweder beim erstmaligen Erstellen eines Indexes oder beim Neuerstellen eines Indexes 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
FILLFACTOR
Bestimmt den Prozentsatz des freien Speicherplatzes auf der Blattebene jeder Seite bei der Indexerstellung.
Ja
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.
Hinweis:
Wenn kein Sortiervorgang erforderlich ist oder die Sortierung im Arbeitsspeicher erfolgen kann, wird SORT_IN_TEMPDB ignoriert.
Nein
IGNORE_DUP_KEY
Gibt die Fehlerreaktion auf doppelte Schlüsselwerte in einer mehrzeiligen INSERT-Transaktion für einen eindeutigen gruppierten oder einen eindeutigen nicht gruppierten Index an.
Ja
STATISTICS_NORECOMPUTE
Gibt an, ob veraltete Indexstatistiken automatisch neu berechnet werden sollen.
Ja
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 Indexes und aller zugehörigen nicht gruppierten Indizes zulässig ist.
Hinweis:
Onlineindexvorgänge sind nur in Microsoft SQL Server 2005 Enterprise Edition verfügbar.
Nein
Ausführen von Onlineindexvorgängen
ALLOW_ROW_LOCKS
Bestimmt, ob beim Zugreifen auf Indexdaten Zeilensperren verwendet werden.
Ja
ALLOW_PAGE_LOCKS
Bestimmt, ob beim Zugreifen auf Indexdaten Seitensperren verwendet werden.
Ja
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.
Hinweis:
Parallelindexvorgänge sind nur in SQL Server 2005 Enterprise Edition verfügbar.
Nein
Konfigurieren von Parallelindexvorgänge
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 Indexes 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 Wertes 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
Siehe auch
Konzepte
Andere Ressourcen
sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)