什么是 'CLOSED state' 和 'delta rowgroup'

What are 'CLOSED state' and 'delta rowgroup'

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

COMPRESSION_DELAY = 0 | delay [ Minutes ]

For a disk-based table, delay specifies the minimum number of minutes a delta rowgroup in the CLOSED state must remain in the delta rowgroup before SQL Server can compress it into the compressed rowgroup. Since disk-based tables don't track insert and update times on individual rows, SQL Server applies the delay to delta rowgroups in the CLOSED state. The default is 0 minutes.

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

SQL 服务器的列存储格式被水平组织成行组 (rowgroups)。 数据可以是 COMPRESSED 形式或 BTree-s.

COMPRESSED 行组是不可变的,额外的结构用于跟踪更新(删除位图等)。压缩的行组占用更少 space 并且可以更快地对其进行聚合 运行,这样您的吞吐量就会大大增加。 压缩形式仅在一定数量的行之上是快速的,否则你最好使用行存储格式 - 又名。三角洲商店。一旦超过此阈值,这些行将在后台迁移到压缩形式。

CLOSED 状态表示此行组已达到要压缩的阈值,正在等待压缩。没有新行添加到此行组,但是删除可以从中删除行。如果行数低于最小条,则行组可以再次 OPEN-ed,因此它接受新的传入行。

有关详细信息,请查看 official documentation, at Niko's blog or at Remus' blog