Utilisation d'index columnstore non cluster

Décrit les tâches clés d’utilisation d’un index columnstore non cluster sur une table SQL Server.

Pour une présentation des index columnstore, consultez Columnstore Indexes Described.

Pour plus d'informations sur les index columnstore cluster, consultez Using Clustered Columnstore Indexes.

Contenu

Créer un index columnstore non cluster

Pour charger des données dans un index columnstore non cluster, chargez d’abord les données dans une table rowstore traditionnelle stockée en tant que segment de mémoire ou index cluster, puis utilisez CREATE COLUMNSTORE INDEX (Transact-SQL) pour créer un index columnstore.

Chargement de données dans un index columnstore

Changer les données dans un index columnstore non cluster

Une fois que vous avez créé un index columnstore non cluster sur une table, vous ne pouvez pas modifier directement les données dans cette table. Une requête avec INSERT, UPDATE, DELETE ou MERGE échouera et renverra un message d'erreur. Pour ajouter ou modifier les données de la table, effectuez les tâches suivantes :

  • Désactivez l’index columnstore. Vous pourrez ensuite mettre à jour les données de la table. Si vous désactivez l'index columnstore, vous pouvez le reconstruire lorsque vous avez fini de mettre à jour les données. Par exemple :

    ALTER INDEX mycolumnstoreindex ON mytable DISABLE;
    -- update mytable --
    ALTER INDEX mycolumnstoreindex on mytable REBUILD
    
  • Supprimez l’index columnstore, mettez à jour la table, puis recréez l’index columnstore avec CREATE COLUMNSTORE INDEX. Par exemple :

    DROP INDEX mycolumnstoreindex ON mytable
    -- update mytable --
    CREATE NONCLUSTERED COLUMNSTORE INDEX mycolumnstoreindex ON mytable;
    
    
  • Chargez les données dans une table intermédiaire qui n'a pas d'index columnstore. Créez un index columnstore sur la table intermédiaire. Basculez la table intermédiaire dans une partition vide de la table principale.

  • Basculez une partition de la table avec l'index columnstore dans une table intermédiaire vide. S'il existe un index columnstore sur la table intermédiaire, désactivez-le. Effectuez toutes les mises à jour. Créez (ou reconstruisez) l'index columnstore. Rebasculez la table intermédiaire dans la partition (maintenant vide) de la table principale.