目录
一、数据库版本信息
二、报错信息
三、报错SQL
四、解决方法
1、修改参数thread_stack
2、改写SQL
(1)改为内连接
(2)临时表
一、数据库版本信息
二、报错信息
三、报错SQL
SQL包含2000多个or条件。
四、解决方法
1、修改参数thread_stack
名称 | 描述 |
参数名 | thread_stack |
取值 | [1024L*128L,ULONG_MAX] |
说明 | 用于控制每一个线程的栈的大小,默认大小 即可。 |
修改方式 | 可在配置文件中修改值。 |
适当调大,调度节点层和数据节点层都需要修改,改完重启集群,可能能避免这个问题。
因为是每个线程的栈的大小,在并发高的情况下,内存资源占用会比较多,不太建议改太大。
2、改写SQL
上面的SQL为例,SQL包含2000多个or条件,是由报表工具生成的,里面的PRODUCT_ID大概率是由另一个复杂SQL或业务表中抽出来,再拼接成现在的形式。建议使用这种方法避开此问题。
(1)改为内连接
将复杂SQL或业务表作为另一张表,和此表做内连接。
(2)临时表
如果复杂SQL的执行耗时较长,且复用率比较高,可以建一张临时表,插入复杂SQL的数据,再和此表做内连接。