Ausführen von Onlineindexvorgängen
In SQL Server 2005 können Sie Indizes online erstellen, neu erstellen oder löschen. Die ONLINE-Option ermöglicht, dass Benutzer während dieser Indexvorgänge gleichzeitig auf die dem Index zugrunde liegende Tabelle oder auf Daten eines gruppierten Indexes sowie auf alle eventuell damit verbundenen nicht gruppierten Indizes zugreifen können. Während beispielsweise ein gruppierter Index von einem Benutzer neu erstellt wird, kann dieser Benutzer – und alle anderen Benutzer – weiterhin die dem Index zugrunde liegenden Daten aktualisieren oder abfragen. Wenn Sie DDL-Vorgänge wie z. B. das Erstellen oder Neuerstellen eines gruppierten Indexes offline ausführen, richten diese Vorgänge exklusive Sperren für die dem Index zugrunde liegenden Daten und damit verbundene Indizes ein. Damit werden Änderungen und Abfragen der zugrunde liegenden Daten verhindert, bis der Indexvorgang abgeschlossen ist.
Hinweis: |
---|
Onlineindexvorgänge sind nur in SQL Server 2005 Enterprise Edition verfügbar. |
Onlineindexvorgänge werden in Geschäftsumgebungen empfohlen, die rund um die Uhr und 7 Tage die Woche aktiv sind, d. h. für die eine gleichzeitige Benutzeraktivität während Indexvorgängen unabdingbar ist.
Die ONLINE-Option ist in folgenden Transact-SQL-Anweisungen verfügbar:
- CREATE INDEX
- ALTER INDEX
- DROP INDEX
- ALTER TABLE (zum Hinzufügen oder Löschen von UNIQUE- oder PRIMARY KEY-Einschränkungen mit der CLUSTERED-Indexoption)
Weitere Informationen zur Onlineindexvorgängen finden Sie unter Funktionsweise von Onlineindexvorgängen und Richtlinien zum Ausführen von Onlineindexvorgängen.
Beispiel
Im folgenden Beispiel werden alle Indizes der Product
-Tabelle der AdventureWorks
-Beispieldatenbank neu erstellt.
USE AdventureWorks;
GO
ALTER INDEX ALL ON Production.Product
REBUILD WITH (ONLINE = ON);
Siehe auch
Konzepte
Deaktivieren von Indizes
Neuorganisieren und Neuerstellen von Indizes
Sperren im Datenbankmodul
Grundlegendes zu zeilenversionsbasierten Isolationsstufen
Andere Ressourcen
ALTER INDEX (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE INDEX (Transact-SQL)