共用方式為


使用非叢集資料行存放區索引

描述在SQL Server資料表上使用非叢集資料行存放區索引的重要工作。

如需資料行存放區索引的概觀,請參閱< Columnstore Indexes Described>。

如需有關叢集資料行存放區索引的詳細資訊,請參閱< Using Clustered Columnstore Indexes>。

目錄

建立非叢集資料行存放區索引

若要將資料載入非叢集資料行存放區索引,請先將資料載入儲存為堆積或叢集索引的傳統資料列存放區資料表,然後使用 CREATE COLUMNSTORE INDEX (Transact-SQL) 來建立資料行存放區索引。

將資料載入資料行存放區索引

變更非叢集資料行存放區索引中的資料

一旦您在資料表上建立非叢集資料行存放區索引,就無法直接修改該資料表中的資料。 使用 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;
    
    
  • 將資料載入未包含資料行存放區索引的暫存資料表。 在暫存資料表上建立資料行存放區索引。 將暫存資料表切換至主資料表的空白分割區。

  • 從具有資料行存放區索引的資料表分割區切換至空白的暫存資料表。 如果暫存資料表上有資料行存放區索引,請停用資料行存放區索引。 執行所有更新。 建立 (或重建) 資料行存放區索引。 將暫存資料表切換回 (現在為空白的) 主資料表分割區。