问题现象
控制相关子查询中嵌套条件 Or 的最大个数参数_gbase_or_recursion_depth。
处理方法
参数_gbase_or_recursion_depth 是 gnode session 级参数,默认值为 10,最小值 为 0(不限制),最大值为 ULONG 类型上限;
增加原因:相关子查询中 Or 递归计算空间复杂度与 Or 个数 n 成指数关系:3 × (2 的 n 次方) - 2。当相关子查询 Or 个数较多时(一般地,n >= 14),使 用内存过多,极易超出系统内存大小而被系统 kill 掉;
参数说明:此参数为 gnode session 级,控制相关子查询中 Or 算子嵌套条件递 归计算的最大深度(即嵌套条件 Or 的最大个数),防止占用内存过多。0 表 示不限制,>0 则指定最大递归深度;
超过设定值时,GNode 提示以下错误信息:
ERROR 1739 (HY000): (GBA-01EX-0006) Express out of resources error:OR operation recursion depth overrun. Max depth: 10”