次の方法で共有


非クラスター化列ストア インデックスの使用

SQL Server テーブルで非クラスター化列ストア インデックスを使用するための主要なタスクについて説明します。

列ストア インデックスの概要については、「 列ストア インデックスの説明」を参照してください。

クラスター化列ストア インデックスの詳細については、「クラスター化 列ストア インデックスの使用」を参照してください。

内容

非クラスター化 Columnstore インデックスの作成

非クラスター化列ストア インデックスにデータを読み込むには、まず、ヒープまたはクラスター化インデックスとして格納されている従来の行ストア テーブルにデータを読み込み、次に CREATE COLUMNSTORE INDEX (Transact-SQL) を使用して列ストア インデックスを作成します。

列ストア インデックスへのデータの読み込み

非クラスター化 Columnstore インデックスでのデータの変更

テーブルに非クラスター化列ストア インデックスを作成すると、そのテーブル内のデータは変更できなくなります。 INSERT、UPDATE、DELETE、または MERGE を使用したクエリは失敗し、エラー メッセージが返されます。 そのテーブル内のデータを追加または変更するには、次のいずれかの操作を行います。

  • 列ストア インデックスを無効にします。 その後、テーブル内のデータを更新できます。 列ストア インデックスを無効にした場合、データの更新の終了時に列ストア インデックスを再構築できます。 次に例を示します。

    ALTER INDEX mycolumnstoreindex ON mytable DISABLE;
    -- update mytable --
    ALTER INDEX mycolumnstoreindex on mytable REBUILD
    
  • 列ストア インデックスを削除し、テーブルを更新してから、CREATE COLUMNSTORE INDEX を使用して列ストア インデックスを再作成します。 次に例を示します。

    DROP INDEX mycolumnstoreindex ON mytable
    -- update mytable --
    CREATE NONCLUSTERED COLUMNSTORE INDEX mycolumnstoreindex ON mytable;
    
    
  • 列ストア インデックスのないステージング テーブルにデータを読み込みます。 そのステージング テーブルに列ストア インデックスを構築します。 そのステージング テーブルをメイン テーブルの空のパーティションに切り替えます。

  • 列ストア インデックスを持つテーブルから空のステージング テーブルにパーティションを切り替えます。 ステージング テーブルに列ストア インデックスがある場合は、列ストア インデックスを無効にします。 更新を実行します。 列ストア インデックスを構築 (または再構築) します。 ステージング テーブルを切り替えて、メイン テーブルの (空になった) パーティションに戻します。