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 中的最大问题是批处理模式的实现非常薄弱,对此您无能为力。