-524:超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZE

场景一:应用请求数据库报错,-524:超出全局hash join空间,适当增加HJ_BUF_GLOBAL_SIZE。

原因:该报错一般是hash排序空间不够,需要增加 HJ_BUF_GLOBAL_SIZE的参数值,该参数为动态参数,立即生效。一般是由于某sql排序占用hash排序空间超出HJ_BUF_GLOBAL_SIZE值导致,需要监控具体sql优化,或者根据整体空间内存使用,调整参数值大小。

相关参数含义:

参数属性默认值说明
HJ_BUF_GLOBAL_SIZE动态,系统级5000HASH 连接操作符的数据总缓存大小(>HJ_BUF_SIZE),系统级参数,单位 MB。取值范围 10~500000
HJ_BUF_SIZE动态,会话级500单个 HASH 连接操作符的数据总缓存大小,单位 MB,必须小于 HJ_BUF_GLOBAL_SIZE。取值范围 2~100000
HJ_BLK_SIZE动态,会话级2HASH 连接操作符每次分配缓存(BLK)大小,单位 MB,必须小于 HJ_BUF_SIZE。取值范围 1~50
相关参数说明


调整时一般通过sp_set_para_values方法调整,动态参数调整后即可生效无需重启数据库服务。例如调整HJ_BUF_GLOBAL_SIZE到10000,完整命令为:

SP_SET_PARA_VALUE(1,'HJ_BUF_GLOBAL_SIZE',10000);

当然一味的HJ_BUF_GLOBAL_SIZE可能并不是最优解,最佳方式是我们找到报错的SQL语句进行优化,比如将hash join优化为nest loop。

原创文章,作者:lzb,如若转载,请注明出处:https://www.wlkjzx.com/2023/08/07/524%ef%bc%9a%e8%b6%85%e5%87%ba%e5%85%a8%e5%b1%80hash-join%e7%a9%ba%e9%97%b4%e9%80%82%e5%bd%93%e5%a2%9e%e5%8a%a0hj_buf_global_size/

(0)
打赏 微信扫一扫 微信扫一扫
lzblzb
上一篇 2023年7月15日
下一篇 2023年8月7日

相关推荐

发表回复

登录后才能评论