SQL DW 中的表类型以及何时选择 - 什么类型

Types of tables in SQL DW and when to opt - what type

我有一个关于 SQL DW 中 table 的类型以及如何创建它们的问题。

我的理解 - 有3种类型 1. HEAP STORE [这是行存储] 2. CLUSTERED INDEX [这是在一列上建立索引的行存储] 3. COLUMN CLUSTERED INDEX [COLUMN store with Indexed on one column]

堆存储是暂存 [​​=28=] 的理想选择。 聚簇索引用于维度 tables,其体积巨大 [ > 10K 至 20M+ ] 列聚集索引用于巨大的事务 tables(>60M 记录)。

现在-我有一个交易 table 有 2500 万条记录,table 包含 255 列。 此 table 包含 StartDateKey、EndDateKey、LoadDateKey、CustId、ProdId、SourceId 等列...事务 table 与 SSAS 数据模型中的 40 多个列连接。

在这种情况下,我的 table 类型应该是什么? 1.聚集索引,因为它<60M 2. 列聚集索引因为它有很多连接发生?

我关于使用 # of records 推导 table 类型的基础是否正确?或者我应该考虑# of columns,# of joins happening,usage pattern,?

我希望我的交易 table 每天查询多次,加载 3 次..

谢谢, 亚拉文

聚集列存储的其他指标之一是具有大量列的表。在 Columnstore 中,每个列段都存储在磁盘上,并分别缓存在内存中。因此,您可以只扫描需要的列,从而提高缓存效率。所以我的猜测是 Clustered Columnstore 在这里最好,即使每个分布都不够大。

但最好的总是取决于工作量,因此虽然有经验法则,但您应该只测试各种选项。加载、更新和查询之间可能存在权衡。在 Azure 中,使用这种大小的数据库,测试将既快速又便宜。

注意一个Clustered Index可以有多个索引列,Clustered Columnstore不是"indexed on one column"每一列单独存储,没有一个列是"special".