您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

加载期间使用的高速缓存内存

应注意,加载期间从主缓存中分配了内存。根据系统内存要求和要加载的表中的列数,这会影响主缓存所需的最小 RAM 量。

SAP IQ 将为每个缺省值(FP 或 n-bit)索引分配一页,为 LF 索引的每个不同值分配一页。为获得最佳性能,直接从主缓存中获取此内存。对于存在大量并发负载的系统或表非常宽的系统,该内存需求可以快速增加。如果没有足够的高速缓存将这些页固定在 RAM 中,性能将降低,因为 SAP IQ 必须转到磁盘才能重新读取装载所需的页。

HG 和 WD 索引在装载过程中使用临时高速缓存。对于特定 HG 或 WD 索引,所需的临时数量(以字节为单位)大致为:

( 8 + sizeof( datatype ) ) * numberRowsBeingLoaded

大约装载 100 行 integer(4 字节数据类型)

(8 + 4) * 100 → 1,200 bytes

将 100 行装载到 varchar(20) 中大致是:

(8 + 20) * 100 → 2,800 bytes

WD 使用的更多,因为数据值中的每个单词(令牌)都需要一些临时缓存。每个令牌都需要与 HG 索引相同的内存。简而言之,内存需求为:

numberTokens * ( 8 + sizeof( datatype ) ) * numberRows

为了用简单的大小写进行说明,假定有一个 char(20) 字段,每行中有 4 个标记。临时高速缓存使用率大致如下:

4 * (8 + 20) * 100 → 11,200 bytes

这会使 WD 内存使用更难预测,因为使用量实际上取决于要加载的令牌数量。