估计排序所需的内存

要计算数据库服务器可能需要用于排序的虚拟共享内存量,须估计可能并发的最大排序数,并将此数乘以平均行数和平均行大小。

例如:如果估计会并发 30 个排序,行的平均大小为 200 字节,表中的平均行数为 400,那么可以如下估算数据库服务器用于排序所需要的共享内存数量:
30 个排序 * 200 字节 * 400 行 = 2,400,000 字节

可使用 DS_NONPDQ_QUERY_MEM 配置参数来为所有查询(除 PDQ 优先级为 0(零)的那些查询外)配置排序内存。DS_NONPDQ_QUERY_MEM 的最小且缺省的值为 128 千字节。受支持的最大值为 DS_TOTAL_MEMORY 的 25%。有关更多信息,请参阅为使用散列连接、聚集和其他内存密集型元素的查询分配更多内存

如果 PDQ 优先级大于 0,那么数据库服务器为排序分配的最大共享内存量将由内存分配管理器 (MGM) 控制。MGM 使用 PDQ 优先级的设置和以下配置参数来确定为排序分配多少内存:

有关为并行处理分配内存的更多信息,请参阅为并行数据库查询分配资源