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.

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Mit SQL Server Management Studio

So aktivieren Sie einen deaktivierten Index

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

  2. Klicken Sie auf das Pluszeichen, um den Ordner Tabellen zu erweitern.

  3. Klicken Sie auf das Pluszeichen, um die Tabelle zu erweitern, in der Sie einen Index aktivieren möchten.

  4. Klicken Sie auf das Pluszeichen, um den Ordner Indizes zu erweitern.

  5. Klicken Sie mit der rechten Maustaste auf den Index, den Sie aktivieren möchten, und wählen Sie Neu erstellen aus.

  6. Ü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

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

  2. Klicken Sie auf das Pluszeichen, um den Ordner Tabellen zu erweitern.

  3. Klicken Sie auf das Pluszeichen, um die Tabelle zu erweitern, in der Sie die Indizes aktivieren möchten.

  4. Klicken Sie mit der rechten Maustaste auf den Ordner Indizes, und wählen Sie Alle neu erstellen.

  5. Ü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:

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]

Mit Transact-SQL

So aktivieren Sie einen deaktivierten Index mit ALTER INDEX

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

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

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

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

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

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

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

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

  1. Stellen Sie im Objekt-Explorer eine Verbindung zu einer Instanz von Database Engine (Datenbankmodul) her.

  2. Klicken Sie in der Standardleiste auf Neue Abfrage.

  3. 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).

Pfeilsymbol, dass mit dem Link "Zurück zum Anfang" verwendet wird[Nach oben]