Azure SQL Data Warehouse: November 2015 Updates で新規に作成したテーブルのデフォルトが列ストアインデックスになったことがアナウンスされたので、動作を確認してみました。
詳細については、Clustered Columnstore Tables are the New Default in Azure SQL Data Warehouse に記載されています。
CREATE TABLE Table1 ( id int NOT NULL, lastName varchar(20), zipCode varchar(6) ) GO
のような、テーブルを作成すると、現状は新規のテーブルについては列ストアインデックスとして作成された状態となります。
実際に確認するためには、以下のようなクエリを実行します。
# SQL Data Warehouse の DMV については、SQL Data Warehouse カタログ ビュー から確認できます。
SELECT name, type_desc FROM sys.indexes WHERE object_id = object_id('Table1') GO SELECT t.object_id, pim.object_id, pni.object_id, t.name, pim.physical_name, pni.name, pni.index_id, pni.type_desc, pni.pdw_node_id, pni.distribution_id FROM sys.tables t LEFT JOIN sys.pdw_index_mappings pim ON t.object_id = pim.object_id LEFT JOIN sys.pdw_nodes_indexes pni ON pni.name = pim.physical_name WHERE t.object_id = object_id('Table1') ORDER BY t.name ASC, pni.distribution_id ASC
「type_desc」が「CLUSTERED COLUMNSTORE」になっていることが確認できますね。
現状、ヒープ (クラスター化インデックスのないテーブル) を作成するためには、「HEAP」を指定して作成する必要があります。
CREATE TABLE Table1 ( id int NOT NULL, lastName varchar(20), zipCode varchar(6) ) WITH(HEAP) GO
「HEAP」を指定した場合は、「HEAP」となっていることが確認できますね。
アップデートが行われる前から、SQLDWH を使用している場合は、どのテーブルがどのようなインデックスを使用しているかは一度確認してみてもいいかもしれないですね。