軟體工程師的小事:到底要不要 Close

資料行存放區索引 (columnstore index) 快速筆記

本文章將介紹部分資料行存放區索引與資料列存放區索引的一些差異與限制,並提供範例程式碼。有需要實作的話可以下載來操作

文章環境
資料庫
Microsoft SQL Server 2017 Evaluation Edition (64-bit)
環境準備

範例環境的指令碼與資料可在下列 Github 路徑中取得
txstudio/column-store-index-notes

init.sql 檔案會建立範例 ColumnStoreIndexDb 資料庫與 SalesOrderDetailFromAdventureWorks2017 資料表

import-data-use-bcp-cmd.txt 提供的 bcp 指令可將資料匯入到 SalesOrderDetailFromAdventureWorks2017 資料表

資料總筆數為 849,219 筆

環境準備完成之後可以開始操作

sample-script-for-columnstore-index-note.sql 有實作的範例 Transact-SQL 指令碼

#0 叢集資料行存放區索引要指定欄位 ?

不用指定也無法指定欄位,因為叢集資料行存放區索引 (clustered columnstore index) 會將整張資料表建立成資料行存放區,所有欄位都包含在裡面

#1 叢集資料行存放區索引可以與非叢資料列索引並存 ?

可以,可以建立多個非叢集資料列索引

#2 叢集資料行存放區索引與非叢集資料行存放區索引是否可以並存 ?

不行,一個資料表只能有一個資料行存放區索引(不論是叢集或非叢集)

#3 有叢集資料列索引的資料表可以建立幾個非叢集資料行存放區索引 ?

一個資料表只能有一個資料行存放區索引(不論是叢集或非叢集)

參考資料

留言