列存储索引中的标识列

Don*_*Don 9 sql-server sql-server-2012 columnstore

我有一个非常大的表 IMO(约 1.37 亿行),其中包含大量重复数据、大量NULL列等。

我正在考虑使用一个带有 a 的表来探索这个COLUMNSTORE INDEX,我IDENTITY在原始表中有一个列,这是我唯一的每一行都是唯一的列。

我应该忽略此列还是包含它?我已经读到您想将表的所有行都包含在 中,COLUMNSTORE INDEX但我也读到最佳候选者是具有许多非唯一行的列。

这只是一个糟糕的候选人COLUMNSTORE INDEX吗?

我使用的是 SQL Server 2012,所以它是一个非聚集列存储。我只是在探索可能的更好的方法来存储这些数据。更新是不存在的,尽管会通过 ELT 过程定期添加新行,所以我假设会在那里完成一些工作。有些人挖掘这些数据并生成大量报告,大量扫描行,有时会使服务器爬行,这迫使我们每天将副本卸载到辅助服务器。

小智 11

标识列在 SQL Server 2012 或 SQL Server 2014 的列存储索引中并未真正压缩。这完全取决于您遇到的工作负载。如果您的工作负载将包括标识列,那么您可以非常漂亮地利用Segment 消除。

从压缩的角度来看 - 列存储将为您提供比页面通常更好的压缩。通常。请在进行生产之前对其进行测试。

您在 SQL Server 2012 中的最大问题是批处理模式的实现非常薄弱,对此您无能为力。

  • 欢迎尼可!!! (7认同)