查询报size overflow

生产环境
ob社区版4.3.1
执行长sql报错 “size overflow”,里面没有使用in
sql.txt (59.0 KB)

做了两个测试

  1. 最后查出来有两百多个字段 去掉几个字段查不报错
  2. 不去掉结果字段 把中间的一段sql生成一张临时表 查那张临时表 也不报错
    不知道是哪里的问题

已联系SQL老师咨询,有进展会及时反馈

请提供如下信息:
1.提供下报错截图
2.
请按如下步骤提供下日志
a.开启 Trace 功能
SET ob_enable_show_trace=ON;
b.执行问题SQL
c.获取SQL trace_id
SELECT last_trace_id() FROM DUAL;
d.登录对应 OBServer 节点,进入到日志文件所在目录
cd /home/admin/oceanbase/log
e.获取trace_id对应的日志
grep xxxxxxx observer.log --填写第3步获取的trace_id

日志:
trace.log (45.2 KB)
报错截图:

大量4019错误

表面现象就是sql太长了,超过内部的某个值报的错。这个有解决方法吗

前几天load data也出现过这个错误。700多个字段,然后把字段名去掉之后就可以正常load 感觉有一些什么限制

SQL 长, 用的栈比较多,需要调整stack_size,可尝试如下方式调整:
如下命令重启ob实例
./bin/observer -o “stack_size=1M”

另外SQL涉及的表是否方便发下?我们考虑复现下,从而进一步优化下

1 个赞

这样改了stack大小,需要重新ob还是啥的才能生效不

使用这个命令重启
./bin/observer -o “stack_size=1M”