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

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.

ms188677.note(de-de,SQL.90).gifHinweis:

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 Fehlerreaktion auf doppelte Schlüsselwerte in einer mehrzeiligen INSERT-Transaktion für einen eindeutigen gruppierten oder einen eindeutigen nicht gruppierten Index an.

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 Indexes und aller zugehörigen nicht gruppierten Indizes zulässig ist.

ms188677.note(de-de,SQL.90).gifHinweis:

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

CREATE INDEX

ALLOW_PAGE_LOCKS

Bestimmt, ob beim Zugreifen auf Indexdaten Seitensperren verwendet werden.

Ja

CREATE 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.

ms188677.note(de-de,SQL.90).gifHinweis:

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

ALTER INDEX (Transact-SQL)

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

Ändern von Indizes

Andere Ressourcen

sys.indexes (Transact-SQL)
sys.stats (Transact-SQL)

Hilfe und Informationen

Informationsquellen für SQL Server 2005