为使用散列连接、聚集和其他内存密集型元素的查询分配更多内存

您可以为非“并行数据库查询”(PDQ) 的查询提高可用的内存量。

如果您希望增加查询可用的内存量,该查询不是 PDQ 查询,并且将 PDQ 优先级设置为 0(零),那么可以通过更改 DS_NONPDQ_QUERY_MEM 配置参数的值来更改内存量:

您还可以使用 onmode -wmonmode -wf 命令来更改 DS_NONPDQ_QUERY_MEM 的值。

例如:如果使用 onmode 实用程序,那么请如以下示例中所示指定一个值:
onmode -wf DS_NONPDQ_QUERY_MEM=500

DS_NONPDQ_QUERY_MEM 的最小值为 128 千字节。受支持的最大值为 DS_TOTAL_MEMORY 的 25%。128 千字节是 DS_NONPDQ_QUERY_MEM 的缺省值。如果您为 DS_NONPDQ_QUERY_MEM 参数指定值,请根据查询中涉及的表行的数目和大小来确定并调整该值。

如果此值超过了 DS_TOTAL_MEMORY 值的 25%,那么 GBase 8s 可能会重新计算 DS_NONPDQ_QUERY_MEM 的初始值。

如果 GBase 8s 更改了您设置的值,那么服务器会使用以下格式发送一条消息:

DS_NONPDQ_QUERY_MEM 已被重新计算,并从 old_value Kb 更改为 new_value Kb。

在该消息中,old_value 表示您在用户配置文件中对 DS_NONPDQ_QUERY_MEM 指定的值,而 new_value 表示 GBase 8s 确定的值。

有关估计向散列连接分配的其他空间量的公式,请参阅估计用于数据库空间和散列连接的临时空间

内存分配管理器 (MGM) 是一个 GBase 8s 组件,它在决策支持查询之间协调内存、CPU 虚拟处理器 (VP)、磁盘 I/O 以及扫描线程的使用情况。MGM 使用 DS_MAX_QUERIES、DS_TOTAL_MEMORY、DS_MAX_SCANS 和 MAX_PDQPRIORITY 配置参数来确定这些可分配给决策支持查询的 PDQ 资源的数量。MGM 还为散列连接之类活动的查询分配内存。有关 MGM 的更多信息,请参阅内存分配管理器