什么是“关闭状态”和“增量行组”

时间:2019-03-27 17:54:36

标签: sql sql-server database indexing columnstore

guide to creating columnstore indexes中有一个有关COMPRESSION_DELAY选项的段落。

  

COMPRESSION_DELAY = 0 |延迟[分钟]

     

对于基于磁盘的表,延迟指定最小分钟数   处于CLOSED状态的增量行组必须保留在增量行组中   SQL Server可以将其压缩到压缩的行组中。以来   基于磁盘的表不跟踪单个表的插入和更新时间   行,SQL Server将延迟应用于CLOSED中的增量行组   州。默认值为0分钟。

我不明白CLOSED staterowgroupdelta rowgroup的确切含义。有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:1)

SQL Server的列存储格式垂直组织为行组(rowgroups)。 数据可以采用COMPRESSED形式或BTree-s形式。

COMPRESSED行组是不可变的,并且使用其他结构来跟踪更新(删除位图等)。压缩的行组占用的空间更少,并且可以更快地对它们进行聚合,这样可以大大提高吞吐量。 压缩形式仅在一定数量的行以上才快速,否则最好以行存储格式-aka。三角洲商店。一旦超过此阈值,这些行就会在后台迁移为压缩形式。

CLOSED状态表示此行组已达到要压缩的阈值,并且正在等待压缩。没有新行添加到该行组,但是删除可以从中删除行。如果行数低于最小值栏,则可以再次对行组进行OPEN编辑,这样它就可以接受新的传入行。

有关更多详细信息,请查看official documentationNiko's blogRemus' blog