plan_cache_mode
是一个配置参数,控制预处理语句是否使用自定义或通用计划。
plan_cache_mode
在PostgreSQL 12中添加。
用法
plan_cache_mode
可以设置为以下值之一
auto
force_custom_plan
force_generic_plan
默认值
plan_cache_mode
的默认值为:auto
。
按PostgreSQL版本详细说明
plan_cache_mode (PostgreSQL 18)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
plan_cache_mode (PostgreSQL 17)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
plan_cache_mode (PostgreSQL 16)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
plan_cache_mode (PostgreSQL 15)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
plan_cache_mode (PostgreSQL 14)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
plan_cache_mode (PostgreSQL 13)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
plan_cache_mode (PostgreSQL 12)
设置 | auto |
单位 | |
类别 | 查询调优/其他规划器选项 |
简短描述 | 控制规划器对自定义或通用计划的选择。 |
额外描述 | 预处理语句可以有自定义和通用计划,规划器将尝试选择哪个更好。这可以设置为覆盖默认行为。 |
上下文 | 用户 |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | auto, force_generic_plan, force_custom_plan |
启动值 | auto |
重置值 | auto |
源文件 | |
源代码行号 | |
需要重启 | 否 |
文档: plan_cache_mode
更改历史
- PostgreSQL 12
- 添加 (提交 f7cb2842)
参考文献
- PostgreSQL文档: plan_cache_mode
有用链接
- PoC plpgsql - 强制使用自定义或通用计划的可能性 - pgsql-hackers 讨论主题
- PostgreSQL 12 如何处理预处理计划 - CyberTec 2019年6月的博文
- PostgreSQL 12:控制何时使用通用计划 - dbi services 2019年5月的博文