建表内存不足问题No memory or reach tenant memory limit

【产品名称】oceanbase

【产品版本】3.1.2

【问题描述】插入数据报错:

insert into temp_dwd_patent_foreign_legalstatus

select tid,patentid,rowkey,an,pn,legalstatus_date,legalstatus_country,legalstatus_code,legalstatus_event_class,legalstatus_impact,legalstatus_event,legalstatus_details,create_date,date_format(t.update_date,’%y-%m-%d’) update_date from dwd_patent_foreign_legalstatus t where t.patentid in (select patentid from patent_now_20220214);

错误信息:No memory or reach tenant memory limit

分流:

insert /*+ enable_parallel_dml parallel(4)*/ into temp_dwd_patent_foreign_legalstatus

select tid,patentid,rowkey,an,pn,legalstatus_date,legalstatus_country,legalstatus_code,legalstatus_event_class,legalstatus_impact,legalstatus_event,legalstatus_details,create_date,date_format(t.update_date,’%y-%m-%d’) update_date from dwd_patent_foreign_legalstatus t where t.patentid in (select patentid from patent_now_20220214);

报错信息:No memory or reach tenant memory limit

分流:

insert /*+ enable_parallel_dml parallel(2)*/ into temp_dwd_patent_foreign_legalstatus

select tid,patentid,rowkey,an,pn,legalstatus_date,legalstatus_country,legalstatus_code,legalstatus_event_class,legalstatus_impact,legalstatus_event,legalstatus_details,create_date,date_format(t.update_date,’%y-%m-%d’) update_date from dwd_patent_foreign_legalstatus t where t.patentid in (select patentid from patent_now_20220214);

执行成功:时间为超长,8个小时左右

区别为parallel(4)失败 。设置parallel(2)执行成功。2和4的区别是什么、小表设置8-16都没问题,大表就报内存不足了,应该如何解决

实际数据无大字段。5亿多的数据

建议您先去了解下并行查询相关资料:

https://open.oceanbase.com/docs/observer-cn/V3.1.2/10000000000015318

https://open.oceanbase.com/docs/observer-cn/V3.1.2/10000000000015322


enable_parallel_dml 这个参数官网在哪里,没有找到

该功能尚未正式release,官网上暂时没有相关资料