Delta 合并后 Delta 中的内存大小

Memory Size in Delta after Delta Merge

在我的 HANA 数据库上,我对几个 table 执行了增量合并,我已经执行了一些 INSERT 语句

我看到合并命令成功完成

另一方面,当我查询 M_CS_TABLES table 时,我看到 MEMORY_SIZE_IN_DELTA 大于零,并且与 MEMORY_SIZE_IN_MAIN 相比百分比很高。事实上,我原以为会看到 0 或更少的百分比。

你能帮我理解这个delta合并和delta问题中的内存大小吗?

我在 HANA 数据库的架构中创建了 sample column tables,并使用 INSERT 命令填充了数据。然后我执行了以下命令

MERGE DELTA OF "SALESORDERHEADER";

查询 table 列的合并统计信息,

select * from M_CS_TABLES where schema_name = Current_schema;

尽管 table 大小非常小,但我预计 table 的增量或行存储部分接近于零

此外,据我所知,所有 table 的 RAW_RECORD_COUNT_IN_DELTA 均为 0,这意味着增量中没有等待合并的记录。

对于基于列的统计,我执行了

select * from M_CS_ALL_COLUMNS
where schema_name = Current_schema and table_name = 'SALESORDERHEADER';

输出为

感谢您添加信息。

当您查看每列 (M_CS_ALL_COLUMNS) 的增量存储的大小时,您会发现大多数值确实接近 8K(8196 字节)。这不是偶然的,而是增量存储结构的内部最小分配大小。

所以,是的,如果没有要合并的条目,列存储的每一列 table 仍然有一个 - 至少 8K 大小的 - 增量存储内存结构 "hanging on to it"。

您关于此增量存储的相对大小的评论是正确的,但重要的是要认识到此 table 是 tiny。 480KB 对于数据库 tables.

来说几乎不算什么

对于如此微小的 table,列存储结构通常 space 效率低于其他数据结构。这当然会改变,一旦您加载了您 want/need 列存储的数据卷。然后是压缩、并行化、CPU 缓存友好性等所有用于空增量存储的额外内存。

总之,这里一切都很好,没什么可看的……继续前进:-D