
# SPM计划管理
 #### spm_enable_plan_capture
**参数说明** **：**此参数用来控制SPM计划捕获功能的计划捕获模式。该参数可在PDB级别设置。
**参数类型：**枚举类型
**参数单位：**无
**取值范围** **：**
- off：表示不开启计划捕获功能。
- auto：表示开启自动计划捕获功能。在这种模式下，SQL计划被捕获的前置条件是SQL被执行两次及以上。
- manual：表示开启手动计划捕获功能。在这种模式下，SQL计划被捕获的前置条件不需要满足SQL被执行两次及以上。
- store：基于auto选项的行为，在这种模式下，SQL计划被捕获的前置条件不需要满足SQL被执行两次及以上，所有计划的状态都捕获为UNACC状态。
**默认值** **：**off。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**不使用SPM功能时推荐使用默认值，若使用SPM则根据需求进行设置。
**设置不当的风险与影响：**若不使用SPM相关功能，打开该参数会导致一定的性能劣化。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
在升级期间，无论该开关是否开启，都不会捕获新的计划的outline，因为升级期间可能发生升级回滚，如果存储了新产生的outline，升级回滚后，可能会存在outline版本兼容性问题。
#### spm_enable_plan_selection
**参数说明** **：**此参数用来控制是否启用SPM计划选择功能。该参数可在PDB级别设置。
**参数类型：**布尔型
**参数单位：**无
**取值范围**：
- on：表示启用计划选择功能。
- off：表示关闭计划选择功能。
**默认值** **：**off。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**不使用SPM功能时推荐使用默认值，若使用SPM，需要设置为on。
**设置不当的风险与影响：**若不使用SPM相关功能，打开该参数会导致一定的性能劣化。
#### spm_plan_capture_filter
**参数说明：**此参数用来指定要捕获的数据库与Schema。该参数可在PDB级别设置。
**参数类型：**字符串
**参数单位：**无
**取值范围：** 最多捕获10000个Schema，计数包括重复Schema。
![](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
参数的格式为："$db1_oid:$schema1_oid, $db2_oid:$schema2_oid.."，例如符合该格式的一组参数"33245:56432,44321:12332,55432:65432"表示：
- 33245:56432表示捕获DB oid为33245且schema oid为56432下的SQL计划。
- 44321:12332表示捕获DB oid为44321且schema oid为12332下的SQL计划。
- 55432:65432表示捕获DB oid为55432且schema oid为65432下的SQL计划。
 
**默认值：**""，表示SPM的计划捕获和计划选择功能包含所有Schema。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于SUSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。若只需收集指定schema的计划或schema的数据量超过阈值，可以指定相关schema。
**设置不当的风险与影响：**使用SPM相关功能时，如果设置的schema oid不准确，可能导致收集不了所有计划。
#### spm_plan_global_cached_size
**参数说明：**指定SPM global plan cache的大小。
**参数类型** **：**整型
**参数单位：**kB
**取值范围：**10240 \~ 20971520
**默认值：**1048576（即1GB）
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，设置为10240，不带单位，表示10240kB；设置为1GB，带单位，表示1GB。取值如果要带单位，必须为kB、MB、GB。
**设置建议：**建议在压力大的场景中增加数据库节点中此参数配置。
**设置不当的风险与影响：**使用SPM相关功能时，过小会影响SPM功能的使用导致性能下降，过大会导致内存占用升高，请酌情设置。
#### spm_plan_session_cached_size
**参数说明：**指定SPM session plan cache的大小。该参数可在PDB级别设置。
**参数类型** **：**整型
**参数单位** **：**kB
**取值范围：**1 \~ 1048576
**默认值：**1024（即1MB）。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于SUSET类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。例如，设置为1024，不带单位，表示1024kB；设置为1GB，带单位，表示1GB。取值如果要带单位，必须为kB、MB、GB。
**设置建议：**建议在压力大的场景中增加数据库节点中此参数配置。
**设置不当的风险与影响：**使用SPM相关功能时，过小会影响SPM功能的使用导致性能下降，过大会导致内存占用升高，请酌情设置。
 #### spm_plan_capture_max_plannum
**参数说明：**指定单个数据库最大落盘计划的数量，分别对应PG_CATALOG.GS_SPM_BASELINE和PG_CATALOG.GS_SPM_PLAN_HISTORY中的记录数。
**参数类型**：整型
**参数单位：**个
**取值范围：**1 \~ 1000000
**默认值：**200000
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**使用SPM相关功能时，过小会影响SPM捕获计划的数量，导致新增计划无法管理，过大会影响磁盘空间，请酌情设置。
 #### spm_plan_retention_days
**参数说明：**指定不使用的计划在磁盘上的预留时间。
**参数类型：**整型
**参数单位：**d（天）
**取值范围：**1 \~ 1095
**默认值：**365
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值，若磁盘空间不足或业务频繁变更，可以考虑将该值设置小一些。
**设置不当的风险与影响：**使用SPM相关功能时，过小会频繁淘汰计划导致无法管理。
#### spm_enable_log_detail
**参数说明** **：**在使用SPM的过程中，控制是否启用notice SPM关键执行流程。该参数通常和如下两个参数的设置配合使用，用于在gsql中查看SPM的执行过程：client_min_messages=notice;logging_module='on(SPM_KEY_FLOW)'。该参数可在PDB级别设置。
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示启用。
- off：表示关闭。
**默认值** **：**off。在PDB场景内，若未设置该参数，则继承来自全局的设置。
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**使用SPM相关功能时，建议只在调试时使用，设置不当会导致大量日志。
 #### spm_enable_baseline_cleanup
**参数说明** **：**是否启用baseline定时清理功能。
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示启用baseline定时清理功能。
- off：表示关闭baseline定时清理功能。
**默认值** **：**on
**设置方式：** 该参数属于SIGHUP类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：** 使用SPM相关功能时，若设置为off则参数[spm_plan_retention_days]和[spm_plan_history_reserved_percentage]无效，不会清理过时计划，也不会清理历史记录。
#### spm_enable_plan_history_logging
**参数说明** **：** 是否启用查询计划跳变历史记录功能，此参数要求必须设置[spm_enable_plan_capture]为STORE模式。
**参数类型：**布尔型
**参数单位：**无
**取值范围** **：**
- on：表示启用查询计划跳变历史记录功能。
- off：表示关闭查询计划跳变历史记录功能。
**默认值** **：**on
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：** 使用SPM相关功能时，若设置为off则参数[spm_enable_plan_history_logging_expired_time]无效，不会进行跳变历史记录。
 #### spm_enable_plan_history_logging_expired_time
**参数说明** **：**当SPM感知到baseline中存在的计划时，如果此计划超过一定时间窗未被执行，则认定当前感知的计划属于计划跳变，需要进行历史记录，时间窗的大小由此参数指定。
**参数类型：**整型
**参数单位：**s（秒）
**取值范围** **：**\[0, 31536000\]
- 以上取值范围中，\[1, 31536000\]为有效取值，代表从1秒到31536000秒（365天）。
- 当设置为0时，代表不进行过期时间判断，当遇到baseline中存在的计划时，直接认定其不会过期，也不会进行跳变历史记录。
**默认值** **：**900，也即15分钟
**设置方式：** 该参数属于USERSET类型参数，请参见[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此值设置过小，可能会导致记录过量历史记录；过大，则会遗漏部分跳变历史记录。
 #### spm_plan_history_reserved_percentage
**参数说明** **：** 由于gs_spm_plan_history表中记录数存在上限，通过该GUC指定百分比，即可指定期望该表可被填充的最大百分比，此值作用的基数为[spm_plan_capture_max_plannum]。gs_spm_plan_history可保留的最大行数 = spm_plan_capture_max_plannum \* spm_plan_history_reserved_percentage%。清理的动作由SPM后台线程每隔24小时触发一次，当关闭[spm_enable_baseline_cleanup]时，则不进行清理。
**参数类型：**整型
**参数单位：**无
**取值范围** **：**\[1, 100\]
**默认值** **：**90
**设置方式：** 该参数属于POSTMASTER类型参数，请参考[表1](https://support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-40-0315.html#ZH-CN_TOPIC_0000002527988878__zh-cn_topic_0000002527058484_zh-cn_topic_0000002372412413_zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。
**设置建议：**推荐使用默认值。
**设置不当的风险与影响：**此值设置过小，会导致频发触发清理，遗漏历史记录；设置过大，会导致占用磁盘空间增大。
