Condividi tramite


Utilizzo di indici Columnstore non clusterizzati

Vengono descritte le attività principali per l'uso di un indice columnstore non cluster in una tabella di SQL Server.

Per una panoramica degli indici columnstore, vedere Indici columnstore descritti.

Per informazioni sugli indici columnstore cluster, vedere Uso di indici columnstore cluster.

Contenuto

Creare un indice columnstore non cluster

Per caricare i dati in un indice columnstore non clusterizzato, prima caricare i dati in una tabella rowstore tradizionale archiviata come heap o indice clusterizzato e quindi utilizzare CREATE COLUMNSTORE INDEX (Transact-SQL) per creare un indice columnstore.

Caricamento dei dati in un indice colonnaarchiviazione

Modificare i dati in un indice columnstore non clusterizzato

Dopo aver creato un indice columnstore non cluster in una tabella, non è possibile modificare direttamente i dati in tale tabella. Una query con INSERT, UPDATE, DELETE o MERGE avrà esito negativo e restituirà un messaggio di errore. Per aggiungere o modificare i dati nella tabella, è possibile eseguire una delle operazioni seguenti:

  • Disabilitare l'indice columnstore. È quindi possibile aggiornare i dati nella tabella. Se si disabilita l'indice columnstore, è possibile ricompilare l'indice columnstore al termine dell'aggiornamento dei dati. Per esempio:

    ALTER INDEX mycolumnstoreindex ON mytable DISABLE;
    -- update mytable --
    ALTER INDEX mycolumnstoreindex on mytable REBUILD
    
  • Eliminare l'indice columnstore, aggiornare la tabella e quindi ricreare l'indice columnstore con CREATE COLUMNSTORE INDEX. Per esempio:

    DROP INDEX mycolumnstoreindex ON mytable
    -- update mytable --
    CREATE NONCLUSTERED COLUMNSTORE INDEX mycolumnstoreindex ON mytable;
    
    
  • Caricare i dati in una tabella di staging che non dispone di un indice columnstore. Creare un indice columnstore sulla tabella di staging. Spostare la tabella di staging in una partizione vuota della tabella principale.

  • Spostare una partizione da una tabella con l'indice columnstore in una tabella di staging vuota. Se nella tabella di staging è presente un indice columnstore, disabilitare quest'ultimo. Eseguire tutti gli aggiornamenti. Compilare o ricompilare l'indice columnstore. Spostare la tabella di staging nella partizione (ora vuota) della tabella principale.