max_stack_depth

指定执行堆栈最大深度的 GUC

max_stack_depth 是一个配置参数,指定服务器执行堆栈的最大安全深度。

max_stack_depth 添加于PostgreSQL 8.0,取代了max_expr_depth

默认值

max_stack_depth 的默认值为:2MB

用法

PostgreSQL 文档建议将 max_stack_depth 设置为内核最大堆栈大小设置值减去大约 1MB。在 Linux 上,可以使用 ulimit -s 确定此值。

PostgreSQL 可以确定内核限制的平台上,它不允许将 max_stack_depth 设置为高于内核限制减去 512kB 的值。但是,如果无法确定内核限制,并且设置了更高的值,则失控的递归函数可能会导致单个后端进程崩溃。

按 PostgreSQL 版本详细说明

max_stack_depth (PostgreSQL 18)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 默认
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 17)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 默认
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 16)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 默认
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 15)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 默认
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 14)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 13)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 12)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 11)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 10)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.6)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.5)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  
等待重启 false

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.4)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.3)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.2)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.1)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.0)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  

文档: max_stack_depth

max_stack_depth (PostgreSQL 8.4)

设置 100
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647
枚举值  
启动值 100
重置值 100
源文件  
源代码行  

文档: max_stack_depth

max_stack_depth (PostgreSQL 8.3)

设置  
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647

文档: max_stack_depth

max_stack_depth (PostgreSQL 8.2)

设置  
单位 kB
类别 资源使用/内存
简短描述 以千字节为单位设置最大堆栈深度。
额外描述  
上下文 超级用户
变量类型 整数
来源 环境变量
最小值 100
最大值 2147483647

文档: max_stack_depth

更改历史记录

示例

尝试在 Linux 系统上将最大堆栈大小设置为 8MB 时设置 max_stack_depth

postgres=# ALTER SYSTEM SET max_stack_depth = '100MB';
ERROR:  invalid value for parameter "max_stack_depth": 102400
DETAIL:  "max_stack_depth" must not exceed 7680kB.
HINT:  Increase the platform's stack depth limit via "ulimit -s" or local equivalent.

分类

GUC 配置项

反馈

提交关于 "max_stack_depth" 的任何评论、建议或更正 此处