
# SPM计划管理函数
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/caution_3.0-zh-cn.png)
当前SPM计划管理特性在分布式下不支持，所以在分布式下调用下面的这些函数都会给出分布式下不支持的错误提示。
#### GS_SPM_EVOLUTE_PLAN(sql_hash, plan_hash)
**描述：**GS_SPM_EVOLUTE_PLAN属于DBE_SQL_UTIL schema，是SPM特性用于计划演进的接口函数。
**参数：** 参数介绍见[表1 GS_SPM_EVOLUTE_PLAN入参和返回值列表]。
 表1GS_SPM_EVOLUTE_PLAN入参和返回值列表 
| 参数             | 类型          | 描述                      | 取值范围 |
|:---|:---|:---|:---|
| sql_hash       | IN bigint   | SQL文本的hash值。            | -    |
| plan_hash      | IN bigint   | SQL计划outline文本的hash值。   | -    |
| evolute_status | OUT boolean | 演进行为是否正常完成：t表示正常；异常会报错。 | t/f  |
   
**返回值类型：**boolean
#### GS_SPM_SET_PLAN_STATUS(sql_hash, plan_hash, plan_status)
**描述：**GS_SPM_SET_PLAN_STATUS属于DBE_SQL_UTIL schema，它是SPM特性用于修改baseline状态的接口函数。
**参数** ：参数介绍见[表3 GS_SPM_SET_PLAN_STATUS入参和返回值列表]。
 表2GS_SPM_SET_PLAN_STATUS入参和返回值列表 
| 参数             | 类型          | 描述                          | 取值范围                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| sql_hash       | IN bigint   | SQL文本的hash值。                | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| plan_hash      | IN bigint   | SQL计划outline文本的hash值。       | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| plan_status    | IN text     | 计划的状态。                      | - ACC：表示已经接受的计划。  - UNACC：表示未接受的计划。  - FIXED：一种特殊的ACC状态的计划，计划的匹配优先级高于ACC状态的计划。    |
| execute_status | OUT boolean | 修改计划状态行为是否正常完成：t表示正常；异常会报错。 | t/f                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
**返回值类型**：boolean
#### GS_SPM_DISPLAY_PLANS(sql_hash)
**描述：**GS_SPM_DISPLAY_PLANS属于DBE_SQL_UTIL schema，它是SPM特性用于查看单条SQL所有baseline的接口函数。
**参数：** 参数介绍见[表4 GS_SPM_DISPLAY_PLANS入参和返回值列表]。
 表3GS_SPM_DISPLAY_PLANS入参和返回值列表 
| 参数        | 类型          | 描述                            | 取值范围                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| sql_hash  | IN bigint   | SQL唯一标识。                      | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| sql_hash  | OUT bigint  | SQL文本的hash值。                  | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| plan_hash | OUT bigint  | SQL计划outline文本的hash值。         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| outline   | OUT text    | 当前计划对应outline的所有Hint的组合字符串。   | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| cost      | OUT double  | 当前计划的代价。                      | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| status    | OUT text    | 当前计划的状态。                      | - ACC：表示已经接受的计划。  - UNACC：表示未接受的计划。  - FIXED：一种特殊的ACC状态的计划，计划的匹配优先级高于ACC状态的计划。   |
| gplan     | OUT boolean | 当前计划是否是gplan。t表示是gplan；异常会报错。 | t/f                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
**返回值类型：**bigint, text, double, text, boolean
#### GS_SPM_RELOAD_PLAN(sql_hash，plan_hash)
**描述：**GS_SPM_RELOAD_PLAN属于DBE_SQL_UTIL schema，它是SPM特性用于加载baseline系统表中某baseline到SPM global cache中的接口函数。
**参数：** 参数介绍见[表5 GS_SPM_RELOAD_PLAN入参和返回值列表]。
 表4GS_SPM_RELOAD_PLAN入参和返回值列表 
| 参数             | 类型          | 描述                               | 取值范围 |
|:---|:---|:---|:---|
| sql_hash       | IN bigint   | SQL文本的hash值。                     | -    |
| plan_hash      | IN bigint   | SQL计划outline文本的hash值。            | -    |
| execute_status | OUT boolean | baseline的加载行为是否正常完成：t表示正常；异常会报错。 | t/f  |
   
**返回值类型：**boolean
#### GS_SPM_VALIDATE_PLAN(sql_hash, plan_hash)
**描述**：GS_SPM_VALIDATE_PLAN属于DBE_SQL_UTIL schema，它是SPM特性用于计划可用性验证的接口函数。
**参数：** 参数介绍见[表9 GS_SPM_VALIDATE_PLAN入参和返回值列表]。
 表5GS_SPM_VALIDATE_PLAN入参和返回值列表 
| 参数             | 类型          | 描                                                                                                                | 取值范围 |
|:---|:---|:---|:---|
| sql_hash       | IN bigint   | SQL文本的hash值。                                                                                                     | -    |
| plan_hash      | IN bigint   | SQL计划outline文本的hash值。                                                                                            | -    |
| execute_status | OUT boolean | 被验证的计划是否可用： t：被验证的计划可用；f: 被验证的计划不可用 | t/f  |
   
**返回值类型**：boolean
#### GS_SPM_DELETE_PLAN(sql_hash, plan_hash)
**描述：**GS_SPM_DELETE_PLAN属于DBE_SQL_UTIL schema，它是SPM特性用于计划删除baseline的接口函数。
**参数：** 参数介绍见[表10 GS_SPM_DELETE_PLAN入参和返回值列表]。
 表6GS_SPM_DELETE_PLAN入参和返回值列表 
| 参数             | 类型          | 描述                        | 取值范围 |
|:---|:---|:---|:---|
| sql_hash       | IN bigint   | SQL文本的hash值。              | -    |
| plan_hash      | IN bigint   | SQL计划outline文本的hash值。     | -    |
| execute_status | OUT boolean | 计划删除行为是否正常完成：t表示正常；异常会报错。 | t/f  |
   
**返回值类型：**boolean
