使用非叢集資料行存放區索引
描述在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;
將資料載入未包含資料行存放區索引的暫存資料表。 在暫存資料表上建立資料行存放區索引。 將暫存資料表切換至主資料表的空白分割區。
從具有資料行存放區索引的資料表分割區切換至空白的暫存資料表。 如果暫存資料表上有資料行存放區索引,請停用資料行存放區索引。 執行所有更新。 建立 (或重建) 資料行存放區索引。 將暫存資料表切換回 (現在為空白的) 主資料表分割區。