【发布时间】:2019-07-28 06:56:07
【问题描述】:
对于相对较小的事实表(平均每个表有 3000 万行),这是最佳的索引和分布设计。每个表的结构类似如下:
CREATE TABLE FactTable (
TimeDimensionID INT NOT NULL,
DimensionID1 VARCHAR (10) NOT NULL,
DimensionID2 VARCHAR (10) NOT NULL,
DimensionID3 VARCHAR (10) NOT NULL,
DimensionID4 VARCHAR (10) NOT NULL,
Measure1 INT,
Measure2 FLOAT,
Measure3 DECIMAL (10.2),
Measure4 DECIMAL (10,2)
)
TimeDimensionID、DimensionID1、DimensionID2、DimensionID3 和 DimensionID4 的并集在事实表中是唯一的。目前,我们在 5 个字段中有一个集群且唯一的主键。
- 将这些表迁移到 SQL Azure 数据仓库的最佳索引和分布是什么?我们正在考虑将 CLUSTERED INDEX(DimensionID1、DimensionID2、DimensionID3 和 DimensionID4)用于索引和使用 TimeDimensionID 字段的哈希分布。
- CLUSTERED INDEX 必须包含 TimeDimensionID 字段,即使哈希分布是针对该字段的?
- 这种设计是正确的,还是我们应该使用 COLUMN STORE INDEX,即使表实际上只有不到 1 亿行?
- 我们应该考虑为事实表使用复制表吗?
【问题讨论】:
标签: azure-sql-database azure-sqldw sql-data-warehouse azure-sql-data-warehouse