Sap 内存中的数据库是根据定义的字段大小保留内存,还是仅根据内部数据的大小保留内存?

Sap 内存中的数据库是根据定义的字段大小保留内存,还是仅根据内部数据的大小保留内存?,sap,hana,Sap,Hana,我和SAP HANA一起工作 范例 NVARCHAR(4000) 数据:ThisisString 正在使用的RAM=4000还是13 如果它保留了4000条记录,那么当你有很多记录时,这个空间真的可以加起来 我正试图决定我应该为我的文本字段使用多少缓冲区。我对您当前形式的问题的理解是,SAP HANA在向客户展示可变长度字符串时如何处理可变长度字符串(我从您保留缓冲区的意图中得出)。 因此,我不打算讨论在表中输入值时HANA内部会发生什么-这相当复杂,取决于所使用的表类型(列、行、外部、临时…)

我和SAP HANA一起工作

范例

NVARCHAR(4000)

数据:ThisisString

正在使用的RAM=4000还是13

如果它保留了4000条记录,那么当你有很多记录时,这个空间真的可以加起来


我正试图决定我应该为我的文本字段使用多少缓冲区。我对您当前形式的问题的理解是,SAP HANA在向客户展示可变长度字符串时如何处理可变长度字符串(我从您保留缓冲区的意图中得出)。 因此,我不打算讨论在表中输入值时HANA内部会发生什么-这相当复杂,取决于所使用的表类型(列、行、外部、临时…)

因此,对于客户端应用程序,a
(N)VARCHAR

将产生一个带有存储值长度的字符串,即不会出现填充(结尾带有空格)。

您只能从这里得到理论上的答案,因为SAP HANA不是开源的,除了它的开发人员(可能他们就在这里)外,任何人都不知道实现细节。理论上,可变长度列保留数据长度(在您的情况下为13)+存储列长度定义所需的字节数。要保存
4000
的值,您需要2个字节(1个字节将保存最多255个十进制整数),因此理论上要求字符串为15个字节。现在,SAP HANA是否适用-只有作者知道。