您可以为非“并行数据库查询”(PDQ) 的查询提高可用的内存量。
如果您希望增加查询可用的内存量,该查询不是 PDQ 查询,并且将 PDQ 优先级设置为 0(零),那么可以通过更改 DS_NONPDQ_QUERY_MEM 配置参数的值来更改内存量:
您还可以使用 onmode -wm 或 onmode -wf 命令来更改 DS_NONPDQ_QUERY_MEM 的值。
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 的更多信息,请参阅内存分配管理器。