问题:业务系统负责SQL语句执行时报错:ERROR:stack depth limit exceeded
报错示例:
原因分析:系统配置参数【max_stack_depth:服务器的执行堆栈的最大安全深度,单位是千字节】,默认配置2mb。复杂SQL中,存在查询堆栈深度比较大,造成默认配置资源不够需要调整参数值。
解决:1.超级用户适当增大设置系统参数值
set max_stack_depth = 4096;
2.查看参数设置是否成功。
select name, setting ,unit from sys_settings where name = 'max_stack_depth';
注意:【max_stack_depth】参数建议最大值:内核强制的实际栈尺寸限制(ulimit -s所设置的或者本地等价物),减去大约一兆字节。