max_stack_depth

指定执行栈最大深度的服务器参数

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

max_stack_depthPostgreSQL 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 17)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 16)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 15)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 14)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 13)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 12)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 11)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 10)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.6)

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

文档: max_stack_depth

max_stack_depth (PostgreSQL 9.5)

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

文档: 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

更改历史记录

示例

尝试在最大堆栈大小设置为 8MB 的 Linux 系统上设置 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" 的任何评论、建议或更正 此处