max_locks_per_transaction 是一个 配置参数,用于控制每个事务分配的对象锁的平均数量。
max_locks_per_transaction 在 PostgreSQL 7.2 中添加。
默认值
max_locks_per_transaction 的默认值为:64。
用法
在备用服务器上,max_locks_per_transaction 的值必须与主服务器的值相同或更高。
当前的 max_locks_per_transaction 值是记录在 pg_control 中的 GUC 参数之一。
按 PostgreSQL 版本详细信息
max_locks_per_transaction (PostgreSQL 19)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,每个服务器进程或预备事务最多需要锁定 "max_locks_per_transaction" 个对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 18)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,每个服务器进程或预备事务最多需要锁定 "max_locks_per_transaction" 个对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 17)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,每个服务器进程或预备事务最多需要锁定 "max_locks_per_transaction" 个对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 16)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,每个服务器进程或预备事务最多需要锁定 max_locks_per_transaction 个对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 15)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 14)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 13)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 12)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 11)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 10)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.6)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.5)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
| 需要重启 |
false |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.4)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.3)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.2)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.1)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 9.0)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 8.4)
| 设置 |
64 |
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
| 枚举值 |
|
| 启动值 |
64 |
| 重置值 |
64 |
| 源文件 |
|
| 源行 |
|
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 8.3)
| 设置 |
|
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
文档:max_locks_per_transaction
max_locks_per_transaction (PostgreSQL 8.2)
| 设置 |
|
| 单位 |
|
| 类别 |
锁管理 |
| 简短描述 |
设置每个事务的最大锁数量。 |
| 扩展描述 |
共享锁表的大小是基于这样的假设:任何时候,最多需要锁定 max_locks_per_transaction * max_connections 个不同的对象。 |
| 上下文 |
postmaster |
| 变量类型 |
整数 |
| 来源 |
默认 |
| 最小值 |
10 |
| 最大值 |
2147483647 |
文档:max_locks_per_transaction
变更历史
另请参阅
deadlock_timeout, max_pred_locks_per_transaction, max_pred_locks_per_relation, max_pred_locks_per_page