DB2中有关排序内存的三个参数:SORTHEAP, SHEAPTHRES_SHR和SHEAPTHRES

DB2中有关排序内存的三个参数:SORTHEAP, SHEAPTHRES_SHR和SHEAPTHRES


在规定DB2的排序操作可用的内存时,会考虑3个参数,现在对这3个参数做一个梳理。


首先一点,您需要了解到排序是分为共享排序(在数据库共享内存中排序)和私有排序(在agent的私有内存中排序)。


1.)SORTHEAP:这个规定了 每个排序操作可用的内存,无论是私有排序、还是共享排序。 以下是信息中心的说明:
如果排序为专用排序,那么此参数将影响代理程序专用内存。如果排序为共享排序,那么此参数将影响数据库共享内存。每个排序都有一个独立的排序堆,该排序堆由数据库管理器根据需要分配。此排序堆是将数据排序的区域。


如果要设置SORTHEAP为automatic,则必须同时满足以下条件:


DBM 参数 sheapthres 设为 0 
self_tuning_mem 配置参数设为 ON
//在满足上面两个条件的前提下,只要SHEAPTHRES_SHR设置为automatic,那么sortheap就会自动调整


2.)SHEAPTHRES_SHR:对排序内存使用者每次可使用的数据库 共享内存总量的软限制,也就是说,限制了 总的数据库共享排序内存的大小


3.) SHEAPTHRES: 指定了 私有排序在任何时刻可以消耗的内存总量在实例范围内的软限制。 


那什么时候使用共享排序,什么时候时候私有排序呢?
如果这个SHEAPTHRES参数是非0值,那么就不会使用共享排序(SHEAPTHRES_SHR这个参数就没有意义了),但有以下例外:
如果启用了内部分区并行性(intra-partition parallelism)或者集中器(concentrator),那么当DB2断定共享排序比私有排序更有效时,DB2就会选择执行共享排序。如果执行共享排序,那么就会在数据库共享内存中分配用于这种排序的排序堆。用于共享排序的最大内存量是由sheapthres_shr数据库参数指定的。这是对共享排序在任何时刻可以消耗的内存总量在数据库范围内的硬限制。当达到这个限制时,请求排序的应用程序将收到错误SQL0955(rc2)。之后,在共享内存总消耗量回落到低于由 sheapthres_shr指定的限制之前,任何共享排序内存的请求都得不到允许。


参考资料:

DB2排序的监控与调优

DB2内存模型

信息中心关于这三个参数的说明:

SORTHEAP

SHEAPTHRES_SHR

SHEAPTHRES




  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DB2 存储过程插入大量数据时,可以采取以下几种方式来提高效率: 1. 使用批量插入:使用 INSERT INTO SELECT 语句结合 VALUES 子句,一次性插入多行数据。这比逐行插入效率更高。 2. 使用临时表:可以先将数据插入到临时表,然后通过 INSERT INTO SELECT 语句将数据从临时表插入到目标表。这种方式可以减少对目标表的锁定时间,提高并发性能。 3. 禁用日志记录:在插入大量数据时,可以考虑临时禁用日志记录,以提高性能。可以使用以下命令禁用日志记录:SET INTEGRITY FOR 表名 IMMEDIATE CHECKED FORCE GENERATED;插入完成后,记得重新启用日志记录。 4. 调整提交频率:默认情况下,DB2 在每次插入操作后都会自动提交事务,这会导致频繁的日志写入和锁定。可以通过设置 AUTOCOMMIT 为 OFF,在插入完成后手动提交事务,减少提交的次数,提高效率。 5. 调整数据库配置参数:根据实际情况,可以调整 DB2 的数据库配置参数来优化插入性能。例如,可以调整 LOGFILSIZ、LOGBUFSZ、LOCKLIST、SORTHEAP参数。 6. 使用并行插入:如果插入操作可以并行执行,可以考虑使用并行插入来提高效率。可以通过设置数据库配置参数 MAX_COORDAGENTS 和 MAX_QUERYDEGREE 来控制并行度。 需要根据具体的业务场景和环境进行测试和调优,以找到最适合的提高插入效率的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值