ERROR: insufficient memory reserved for statement tuplesort_mk.h:115

12 篇文章 0 订阅

这个错误是个困扰我很长时间的问题,我发生此问题在进行大数据导入的时候,开始发现此错误提示的时候,我们都会从内存调整的角度去考虑,比如调整内存相关的参数,比如我按照如下的调整。

gpconfig -c max_statement_mem -v 10GB  #单个查询最大内存
gpconfig -c max_work_mem -v 10GB       #与上面相关
gpconfig -c statement_mem -v 4GB 
gpconfig -c work_mem -v 8GB 
gpconfig -c temp_buffers -v 524288  #临时缓冲区默认1M,默认值1024

但是执行以上参数调整后,只是延缓了出错的时间,最终还是会报上面的错误,后来与群里的朋友交流发现,其实这是一个算不上bug的bug,为什么这么说,因为GPDB在大数据量导入的过程中,尤其在存储过程和函数的使用中,会出现上面的问题,调整参数对于一些情况是起作用的,比如移动的一位朋友就通过调整参数解决了类似的问题,但是对于我而言无效,最终通过调整导入策略的方式解决此问题。
之前的逻辑是:

update a set a.flag='1' where a.id in(select id from b group by col having count(distinct col2)>3);

--更换后的逻辑是创建物理表如t_id
insert into t_id select id from b group by col having count(distinct col2)>3;
update a set a.flag='1' from t_id t where t.id=a.id
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值