Delta合并后,Delta中的内存大小

时间:2019-03-15 06:48:04

标签: database hana hana-sql-script

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

我看到merge命令成功完成了

另一方面,当我查询M_CS_TABLES表时,与MEMORY_SIZE_IN_MAIN相比,我发现MEMORY_SIZE_IN_DELTA大于零且百分比很高。我原本希望看到0或更少的百分比。

能否请您帮助我了解增量问题中的增量合并和内存大小?

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

MERGE DELTA OF "SALESORDERHEADER";

要查询列表的合并统计信息,

select * from M_CS_TABLES where schema_name = Current_schema;

尽管表的大小很小,但我希望表的增量或行存储部分接近于零

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

enter image description here

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

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

输出为

enter image description here

1 个答案:

答案 0 :(得分:0)

感谢您添加信息。

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

因此,是的,如果没有要合并的条目,则列存储表的每一列仍然具有-至少8K大小的-增量存储存储结构“挂在其上”。

您关于此增量存储区的相对大小的评论是有效的,但重要的是要认识到此表是 tiny 。 480KB对于数据库表而言实际上是什么。

对于这样的小表,列存储结构通常比其他数据结构的空间效率低。一旦加载要/需要列存储的数据卷,这当然会改变。然后,压缩,并行化,CPU缓存友好性等全部用于空增量存储的额外内存。

无论如何,这里一切都很好,没什么可看的...继续前进:-D