Aktivieren von Indizes und Einschränkungen
In diesem Thema wird beschrieben, wie ein deaktivierter Index in SQL Server 2012 mit SQL Server Management Studio oder Transact-SQL aktiviert wird. Nach dem Deaktivieren eines Indexes bleibt er deaktiviert, bis er neu erstellt oder gelöscht wird.
In diesem Thema
Vorbereitungen:
Einschränkungen
Sicherheit
So aktivieren Sie einen deaktivierten Index mit:
SQL Server Management Studio
Transact-SQL
Vorbereitungen
Einschränkungen
Nachdem der Index neu erstellt wurde, müssen alle Einschränkungen, die aufgrund der Deaktivierung des Indexes deaktiviert wurden, manuell aktiviert werden. PRIMARY KEY- und UNIQUE-Einschränkungen werden durch Neuerstellen des zugehörigen Indexes aktiviert. Dieser Index muss neu erstellt (aktiviert) werden, bevor Sie FOREIGN KEY-Einschränkungen aktivieren können, die auf die PRIMARY KEY- oder UNIQUE-Einschränkung verweisen. FOREIGN KEY-Einschränkungen werden mithilfe der ALTER TABLE CHECK CONSTRAINT-Anweisung aktiviert.
Das Neuerstellen eines deaktivierten gruppierten Indexes kann nicht ausgeführt werden, wenn die Option ONLINE auf ON festgelegt wurde.
Wenn der gruppierte Index deaktiviert oder aktiviert und der nicht gruppierte Index deaktiviert ist, besitzt die Aktion des gruppierten Indexes die folgenden Auswirkungen auf den deaktivierten nicht gruppierten Index.
Gruppierte Index-Aktion
Deaktivierter nicht gruppierter Index ...
ALTER INDEX REBUILD
Bleibt deaktiviert.
ALTER INDEX ALL REBUILD.
Wird neu erstellt und aktiviert.
DROP INDEX.
Bleibt deaktiviert.
CREATE INDEX WITH DROP_EXISTING.
Bleibt deaktiviert.
Beim Erstellen eines neuen gruppierten Index tritt das gleiche Verhalten auf wie bei ALTER INDEX ALL REBUILD.
Zulässige Aktionen für nicht gruppierte Indizes, die einem gruppierten Index zugeordnet sind, hängen vom Status (deaktiviert oder aktiviert) der beiden Indextypen ab. In der folgenden Tabelle werden die zulässigen Aktionen für nicht gruppierte Indizes zusammengefasst.
Nicht gruppierte Index-Aktion
Wenn der gruppierte und der nicht gruppierte Index deaktiviert sind.
Wenn der gruppierte Index aktiviert ist und der nicht gruppierte Index einen beliebigen Zustand aufweist.
ALTER INDEX REBUILD
Die Aktion erzeugt einen Fehler.
Die Aktion ist erfolgreich.
DROP INDEX.
Die Aktion ist erfolgreich.
Die Aktion ist erfolgreich.
CREATE INDEX WITH DROP_EXISTING.
Die Aktion erzeugt einen Fehler.
Die Aktion ist erfolgreich.
Sicherheit
Berechtigungen
Erfordert die ALTER-Berechtigung für die Tabelle oder Sicht. Bei der Verwendung von DBCC DBREINDEX muss der Benutzer die Tabelle besitzen oder Mitglied der festen Serverrolle sysadmin oder der festen Datenbankrollen db_ddladmin und db_owner sein.
[Nach oben]
Mit SQL Server Management Studio
So aktivieren Sie einen deaktivierten Index
Klicken Sie in Objekt-Explorer auf das Pluszeichen, um die Datenbank zu erweitern, die die Tabelle enthält, auf der Sie einen Index aktivieren möchten.
Klicken Sie auf das Pluszeichen, um den Ordner Tabellen zu erweitern.
Klicken Sie auf das Pluszeichen, um die Tabelle zu erweitern, in der Sie einen Index aktivieren möchten.
Klicken Sie auf das Pluszeichen, um den Ordner Indizes zu erweitern.
Klicken Sie mit der rechten Maustaste auf den Index, den Sie aktivieren möchten, und wählen Sie Neu erstellen aus.
Überprüfen Sie im Dialogfeld Indizes neu erstellen, dass der richtige Index im Raster Neu zu erstellende Indizes ausgewählt ist, und klicken sie auf OK.
So aktivieren Sie alle Indizes auf einer Tabelle
Klicken Sie in Objekt-Explorer auf das Pluszeichen, um die Datenbank zu erweitern, die die Tabelle enthält, in der Sie die Indizes aktivieren möchten.
Klicken Sie auf das Pluszeichen, um den Ordner Tabellen zu erweitern.
Klicken Sie auf das Pluszeichen, um die Tabelle zu erweitern, in der Sie die Indizes aktivieren möchten.
Klicken Sie mit der rechten Maustaste auf den Ordner Indizes, und wählen Sie Alle neu erstellen.
Überprüfen Sie im Dialogfeld Indizes neu erstellen, dass die richtigen Indizes im Raster Neu zu erstellende Indizes ausgewählt sind, und klicken sie auf OK. Um einen Index aus dem Raster Neu zu erstellende Indizes zu entfernen, wählen Sie den Index aus, und drücken Sie die ENTF-Taste.
Die folgenden Informationen sind im Dialogfeld Indizes neu erstellen verfügbar:
[Nach oben]
Mit Transact-SQL
So aktivieren Sie einen deaktivierten Index mit ALTER INDEX
Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO -- Enables the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table. ALTER INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee REBUILD; GO
So aktivieren Sie einen deaktivierten Index mit CREATE INDEX
Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO -- re-creates the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table -- using the OrganizationLevel and OrganizationNode columns -- and then deletes the existing IX_Employee_OrganizationLevel_OrganizationNode index CREATE INDEX IX_Employee_OrganizationLevel_OrganizationNode ON HumanResources.Employee (OrganizationLevel, OrganizationNode) WITH (DROP_EXISTING = ON); GO
So aktivieren Sie einen deaktivierten Index mit DBCC DBREINDEX
Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO -- enables the IX_Employee_OrganizationLevel_OrganizationNode index -- on the HumanResources.Employee table DBCC DBREINDEX ("HumanResources.Employee", IX_Employee_OrganizationLevel_OrganizationNode); GO
So aktivieren Sie alle Indizes auf einer Tabelle mit ALTER INDEX
Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel, fügen Sie es in das Abfragefenster ein, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO -- enables all indexes -- on the HumanResources.Employee table ALTER INDEX ALL ON HumanResources.Employee REBUILD; GO
So aktivieren Sie alle Indizes auf einer Tabelle mit DBCC DBREINDEX
Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.
Klicken Sie in der Standardleiste auf Neue Abfrage.
Kopieren Sie das folgende Beispiel in das Abfragefenster, und klicken Sie auf Ausführen.
USE AdventureWorks2012; GO -- enables all indexes -- on the HumanResources.Employee table DBCC DBREINDEX ("HumanResources.Employee", " "); GO
Weitere Informationen finden Sie unter ALTER INDEX (Transact-SQL), CREATE INDEX (Transact-SQL) und DBCC DBREINDEX (Transact-SQL).
[Nach oben]