Cyn*_*ker 5 index sql-server columnstore sql-server-2014
我想在一些非常大的宽表上实现(SQL Server 2014)聚集列存储索引。我需要更多内存来支持这个吗?如果是这样,我如何确定多少?
更多的 RAM 而不是什么?与普通的聚集索引相比,数据被高度压缩,因此在查询期间应该占用更少的内存。但是,构建 CCI 的过程可能会占用大量内存。查看产品文档
计划足够的内存以并行创建列存储索引 除非内存受限,否则默认情况下创建列存储索引是并行操作。与串行创建索引相比,并行创建索引需要更多内存。当内存充足时,创建列存储索引的时间是在相同列上构建 B 树的时间的 1.5 倍。
创建列存储索引所需的内存取决于列数、字符串列数、并行度(DOP)和数据的特性。例如,如果您的表少于一百万行,SQL Server 将仅使用一个线程来创建列存储索引。
如果您的表有超过一百万行,但 SQL Server 无法获得足够大的内存授权来使用 MAXDOP 创建索引,则 SQL Server 将根据需要自动减少 MAXDOP 以适应可用内存授权。在某些情况下,DOP 必须减少到 1 才能在受限内存下构建索引。
有几个方面需要考虑:
至于您的“我是否需要更多 RAM”的问题,那么答案可能是否定的,因为引擎将在您创建索引时使用任何可用的 RAM,除非您受到严重限制。 http://www.nikoport.com/2014/06/21/clustered-columnstore-indexes-part-31-memory-pressure-and-row-group-sizes/
| 归档时间: |
|
| 查看次数: |
2010 次 |
| 最近记录: |