Freigeben über


Verwenden nicht gruppierter Columnstore-Indizes

Beschreibt die wichtigsten Aufgaben für die Verwendung eines nicht gruppierten Columnstore-Indexes in einer SQL Server Tabelle.

Eine Übersicht über Columnstore-Indizes finden Sie unter Columnstore Indexes Described.

Informationen zum Verwenden von gruppierten Columnstore-Indizes finden Sie unter Using Clustered Columnstore Indexes.

Inhalte

Erstellen eines nicht gruppierten Columnstore-Indexes

Um Daten in einen nicht gruppierten Columnstore-Index zu laden, laden Sie zunächst Daten in eine herkömmliche Rowstore-Tabelle, die als Heap oder gruppierter Index gespeichert ist, und verwenden Sie dann CREATE COLUMNSTORE INDEX (Transact-SQL), um einen Columnstore-Index zu erstellen.

Laden von Daten in einen Columnstore-Index

Ändern der Daten in einem nicht gruppierten Columnstore-Index

Wenn Sie einen nicht gruppierten Columnstore-Index für eine Tabelle erstellen, können Sie die Daten in dieser Tabelle nicht mehr direkt ändern. Eine Abfrage mit INSERT, UPDATE, MERGE oder DELETE schlägt fehl und gibt eine Fehlermeldung zurück. Um Daten in der Tabelle hinzuzufügen oder zu ändern, können Sie eine der folgenden Aktionen ausführen:

  • Deaktivieren Sie den Columnstore-Index. Anschließend können Sie die Daten in der Tabelle aktualisieren. Wenn Sie den Columnstore-Index deaktivieren, können Sie den Columnstore-Index nach dem Aktualisieren der Daten neu erstellen. Beispiel:

    ALTER INDEX mycolumnstoreindex ON mytable DISABLE;
    -- update mytable --
    ALTER INDEX mycolumnstoreindex on mytable REBUILD
    
  • Löschen Sie den Columnstore-Index, aktualisieren Sie die Tabelle, und erstellen Sie dann den Columnstore-Index mit CREATE COLUMNSTORE INDEX neu. Beispiel:

    DROP INDEX mycolumnstoreindex ON mytable
    -- update mytable --
    CREATE NONCLUSTERED COLUMNSTORE INDEX mycolumnstoreindex ON mytable;
    
    
  • Laden Sie Daten in eine Stagingtabelle ohne Columnstore-Index. Erstellen Sie einen Columnstore-Index für die Stagingtabelle. Wechseln Sie für die Stagingtabelle in eine leere Partition der Haupttabelle.

  • Wechseln Sie für eine Partition in der Tabelle mit dem Columnstore-Index in eine leere Stagingtabelle. Wenn die Stagingtabelle über einen Columnstore-Index verfügt, deaktivieren Sie den Columnstore-Index. Nehmen Sie die gewünschten Updates vor. Erstellen bzw. erstellen Sie den Columnstore-Index neu. Wechseln Sie für die Stagingtabelle zurück in die (nun leere) Partition der Haupttabelle.