怎样理解关于排序的这两个参数?

在书上看到SHEAPTHRES最好是sortheap 的两倍大小。 如果SHEAPTHRES反而比sortheap小很多,会怎么样? sortheap就失效了吗? 显示全部
在书上看到SHEAPTHRES最好是sortheap 的两倍大小。
如果SHEAPTHRES反而比sortheap小很多,会怎么样?
sortheap就失效了吗? 收起
参与2

查看其它 1 个回答ly4983 的回答

ly4983 ly4983 数据库运维工程师 黑龙江博众
对于私有排序,数据库管理器配置参数 sheapthres指定了私有排序在任何时刻可以消耗的内存总量在实例范围内的 软限制。如果一个实例总共消耗的私有排序内存达到了这一限制,那么为额外传入的私有排序请求所分配的内存将大大减少。这样就会在 db2diag.log 中看到如下消息:

"Not enough memory available for a (private) sort heap of size size of sortheap. Trying smaller size..."

如果启用了内部分区并行性(intra-partition parallelism)或者集中器(concentrator),那么当 DB2 断定共享排序比私有排序更有效时,DB2 就会选择执行共享排序。如果执行共享排序,那么就会在数据库共享内存中分配用于这种排序的排序堆。用于共享排序的最大内存量是由 sheapthres_shr数据库参数指定的。这是对共享排序在任何时刻可以消耗的内存总量在数据库范围内的 硬限制。当达到这个限制时,请求排序的应用程序将收到错误 SQL0955 (rc2)。之后,在共享内存总消耗量回落到低于由 sheapthres_shr指定的限制之前,任何共享排序内存的请求都得不到允许。
互联网服务 · 2011-10-13
浏览659

回答者

ly4983
数据库运维工程师 黑龙江博众
评论128

ly4983 最近回答过的问题

回答状态

  • 发布时间:2011-10-13
  • 关注会员:0 人
  • 回答浏览:659
  • X社区推广