达梦数据库错误代码[-524]:超出全局hash join空间

1 超出全局hash join空间

首先我们讲一个故事:
你是上帝视角【1】,你给了小明 100 个棒槌【2】,这个时候来了 10 个叫做小花的人,小花可以去仓库里拿面粉做包子,但是做一次包子,需要借用小明的棒槌,假如每一个小花借用 10 个棒槌,如果同时来了 11 个小花,前 10 个小花都能借到棒槌,第 11 个小花去找小明借棒槌的时候,小明就告诉她:超出我的棒槌个数了,小花做包子失败。这句话翻译一下就是:数据库服务器报错超出全局 hash join 空间,应用请求在数据库执行失败。但是,每一个小花根据自己的工作量,需要的棒槌个数并不一定必须是 10 个。也就是说,只有来的小花把棒槌都借用完,小明才会报错。但是小明也不是一直会报错,只要有任何一个小花,事情做完了,把借用的棒槌还回来,小明就又可以支撑新的小花。
上面这个故事,对应两个参数,如下图所示:
在这里插入图片描述
小明一共有多少个棒槌,由 HJ_BUF_GLOBAL_SIZE 设置,默认值是 500。一个小花最多可以借多少个棒槌,由 HJ_BUF_SIZE 设置,默认值是 50。还有一个参数控制小明一次给小花多少个棒槌(比如小明要给小花 10 个棒槌,可以是一次给 1 个给 10 次,也可以是一次给 5 个给两次,这两种代价是不一样的)。一次给多少个,取决于以下参数:
在这里插入图片描述
好了,我们回到问题,如果遇到小明报错了怎么办呢?

2 解决方案

解决方法一
很多情况下,小花实际上只需要 1 个棒槌、一分钟内就能把事情做完,结果她却用了 10 个棒槌,一天都没有把事情做完,占用的这 10 个棒槌也一直没有还给小明。换句话说就是要优化语句,消除掉这些不聪明的小花。遇到这个问题的优先核心方法是:找出不聪明的小花,让她变聪明——找到慢语句,进行优化。

解决方法二
扩大小明的棒槌个数,增大 HJ_BUF_GLOBAL_SIZE 数值。或者是减小单个小花可以借用的棒槌上限,改小 HJ_BUF_SIZ 数值。(有人会问,小花要 10 个棒槌,现在你给她设置成 5 个,她还能干活么?答案是可以,哪怕限制小花最多只能借用 1 个棒槌,她也可以干活,只是工作时间会久一点。同样的,也不是一次性给的越多越好,如果本身只需要 5 个,一次性给了 10 个,也没有意义,工作效率并不会提高。)

如果确认系统中预期的 SQL 均是符合预期的计划,效率均没有问题,确实需要高并发,就必须提高 HJ_BUF_GLOBAL_SIZE/HJ_BUF_SIZ 的比值。同时,又由于前一个参数是静态参数(修改该参数后,需要重启数据库服务后才可以生效),所以应急策略(不能重启数据库的情况下)的处理方式,只有【调小 HJ_BUF_SIZ 数值,这个参数是动态参数,修改后立即生效】。等有机会重启数据库服务时,再在重启数据库服务前,适当调大 HJ_BUF_SIZ 数值,同时也需要保持较高的 HJ_BUF_GLOBAL_SIZE/HJ_BUF_SIZ 的比值。

注意
修改数据库参数的方式: sp_set_para_value(1,’参数名字’,参数值);–当成 SQL 执行;对于动态参数,直接修改后,立即生效;如果是静态参数,如此修改,会报错:无法修改静态配置参数。 sp_set_para_value(2,’参数名字’,参数值);–当成 SQL 执行;对于动态参数或者静态参数都可以用,修改后,需要重启数据库服务后才生效。

3 具体项目报错

在这里插入图片描述

4 查询参数

主库:
在这里插入图片描述

备库:
在这里插入图片描述

5 调整主库参数HJ_BUF_SIZE

sp_set_para_value(2,‘HJ_BUF_SIZE’,256);
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用:标签路由 router-link 。引用: 当您单击通过react-router-hash-link link创建react-router-hash-link ,它将滚动到页面上id与该链接中#hash-fragment匹配的元素。引用: <router-link to="" @click="jumpTo(scope.row.subnetUrl)" class="link-type"> <span>{{scope.row.subnetUrl}}</span> </router-link> 根据引用内容可知,router-link :to是一个在React Router中使用的标签,用于创建链接到特定路径的路由链接。在引用中的代码示例中,to属性为空字符串,这意味着点击链接时不会导航到任何路径。相反,通过@click事件绑定的jumpTo方法会在点击时触发,它会调用window.open方法打开scope.row.subnetUrl对应的链接。所以,router-link :to属性的作用是指定需要导航到的路径,而跳转的动作则是通过点击事件来实现的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [router link to](https://blog.csdn.net/qq_42108487/article/details/97312730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [react-router-hash-link:React Router的哈希链接滚动功能](https://download.csdn.net/download/weixin_42144604/18593343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【Vue】router-link :to跨域跳转新链接,不带localhost:80端口](https://blog.csdn.net/single_0910/article/details/120909325)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值