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

通过 Max_Hash_Rows 进行的查询调优

目前,SAP IQ 具有名为 Max_Hash_Rows 的选项,用于控制在运行时可使用多少高速缓存来执行各种散列连接算法。默认设置基于只有 4 GB RAM 的系统。目前,大多数系统都大于此值,因此应增加此选项以帮助处理吞吐量。

设置 Max_Hash_Rows 的良好起点是说明进入其中的 4 GB RAM 因子:

New Value → 2.5 Million * (SAP IQ Memory / 4GB Memory)

其中 SAP IQ 内存 = SAP IQ 主高速缓存 (GB) + SAP IQ 临时高速缓存 (GB)

对于用户计数相对较低的系统,可以引发内存组件以在主机上包括所有 RAM:

New Value → 2.5 Million * (HostRAM / 4GB Memory)

其中 HostRAM 是 SAP IQ 主机上的 RAM 总量

这将允许每个用户使用略多 RAM。

增加要在 RAM 中保留的最大散列行数时,增加可以固定这些散列行的 RAM 数量也很重要。如果只是增加了可装入内存的行数,则可能无法获得全部优势,因为散列键必须适合可锁定高速缓存。通常,将典型系统的 Hash_Pinnable_Cache_Percent 设置增加到 30%(对于轻负载系统,为 35%)将有助于将散列键放入缓存中。

–gm 启动选项(连接数)也在此讨论中起作用,因为它直接确定每个用户连接可以使用多少 RAM。因此,重要的是将 –gm 设置为一个切合实际且相当准确的值,以涵盖所有情况。