diff --git a/content/docs-lite/zh/docs/AboutopenGauss/figures/auto_parameterization_1.png b/content/docs-lite/zh/docs/AboutopenGauss/figures/auto_parameterization_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd3aad03d54af377aa08028f704b73ed1f10188 Binary files /dev/null and b/content/docs-lite/zh/docs/AboutopenGauss/figures/auto_parameterization_1.png differ diff --git "a/content/docs-lite/zh/docs/AboutopenGauss/\350\207\252\345\212\250\345\217\202\346\225\260\345\214\226.md" "b/content/docs-lite/zh/docs/AboutopenGauss/\350\207\252\345\212\250\345\217\202\346\225\260\345\214\226.md" new file mode 100644 index 0000000000000000000000000000000000000000..cbffa508484dd28e908b79d1029e221ca84829e6 --- /dev/null +++ "b/content/docs-lite/zh/docs/AboutopenGauss/\350\207\252\345\212\250\345\217\202\346\225\260\345\214\226.md" @@ -0,0 +1,66 @@ +# 自动参数化 + +## 可获得性 + +本特性自openGauss 7.0.0-RC1版本开始引入。 + +## 特性简介 + +openGauss的自动参数化功能是在需要反复执行相似/相同的SQL简单语句的情境下,通过复用执行计划缓存以减少SQL语句的执行时间。 + +## 客户价值 + +提升大量相似简单SQL重复执行情况下的性能表现。 + +## 特性描述 + +在存在大量相似/重复的简单SQL语句的场景下,对SQL语句进行参数化操作, 将其作为键值,并将相应的执行计划进行缓存,后续可通过相同参数化SQL语句直接寻找对应执行计划缓存,进而减少SQL语句执行时在查询重写,计划生成步骤所消耗的时间。 + +![](./figures/auto_parameterization_1.png) + +## 特性增强 + +无。 + +## 特性约束 + +- 仅支持IUD(Insert, Update, Delete)三类DML。 +- 仅支持Simple Query Protocol, 不支持Extended Query Protocol。 +- SQL语句的长度必须小于等于512。 +- 不支持RETURNING关键词。 +- 不支持WITH CLAUSE。 +- 不支持UPSERT CLAUSE。 +- 不支持HINT。 +- 不支持子查询。 +- 不支持ORDER BY关键词。 +- 不支持LIMIT关键词。 +- 不支持函数。 +- 不支持COLLATE关键词。 +- 不支持值的类型转换。 +- 不支持使用NULL关键词。 +- 不支持IGNORE关键词。 +- 不支持DEFAULT VALUES与DEFAULT关键词。 +- 不支持USING关键词。 +- 不支持ON DUPLICATE KEY UPDATE语法。 +- 不支持PARTITION关键词。 +- 最大可存储缓存计划为512。 + +## 依赖关系 + +无。 + +## 使用指导 + +自动参数化功能由会话级别GUC参数控制,开启相关参数后满足条件的SQL语句将会通过自动参数化功能处理。下列参数的设置可参考[此处](../DatabaseReference/其他优化器选项.md#section6842184123547)进行设置。 + +- **开启自动参数化功能** + +``` +SET ENABLE_QUERY_PARAMETERIZATION=ON; +``` + +- **设置最大可缓存的执行计划数量** + +``` +SET MAX_PARAMETERIZED_QUERY_STORED=512; +``` diff --git "a/content/docs-lite/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" "b/content/docs-lite/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" index 476c6bd5369288c8f3506f430550905d512f4150..4f292aa3cba2cd47d5720e8aae295372e9760aa8 100644 --- "a/content/docs-lite/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" +++ "b/content/docs-lite/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" @@ -807,3 +807,26 @@ set sql_beta_feature=none; - off:表示允许计划缓存变更结果类型格式。 **默认值**:true + +## enable\_query\_parameterization + +**参数说明**:该参数为自动参数化功能控制参数,开启该功能时满足条件的SQL语句将会进入参数化流程进行处理。 + +该参数属于USERSET类型参数,请参考[表1](../DatabaseAdministrationGuide/重设参数.md#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。 + +**取值范围**:布尔型。 + +- on:开启自动参数化功能。 +- off:关闭自动参数化功能。 + +**默认值**:off + +## max\_parameterized\_query\_stored + +**参数说明**:该参数用于设置自动参数化功能开启时, 最大可缓存的执行计划数量。 + +该参数属于USERSET类型参数,请参考[表1](../DatabaseAdministrationGuide/重设参数.md#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。 + +**取值范围**:整型,1\~512。 + +**默认值**:256 \ No newline at end of file diff --git a/content/docs-lite/zh/menu/index.md b/content/docs-lite/zh/menu/index.md index 284b6daf78dbe2df09c12c728b17a230db5a5931..f088f85520fdf9bda363d189137431ab8ed1b1c5 100644 --- a/content/docs-lite/zh/menu/index.md +++ b/content/docs-lite/zh/menu/index.md @@ -41,6 +41,7 @@ headless: true - [行存转向量化]({{< relref "./docs/AboutopenGauss/行存转向量化.md" >}}) - [子事务并发回滚流程优化]({{< relref "./docs/AboutopenGauss/子事务并发回滚流程优化.md" >}}) - [大页内存]({{< relref "./docs/AboutopenGauss/大页内存.md" >}}) + - [自动参数化]({{< relref "./docs/AboutopenGauss/自动参数化.md" >}}) - [高可用]({{< relref "./docs/AboutopenGauss/高可用.md" >}}) - [主备机]({{< relref "./docs/AboutopenGauss/主备机.md" >}}) - [逻辑复制]({{< relref "./docs/AboutopenGauss/逻辑复制.md" >}}) diff --git a/content/zh/docs/AboutopenGauss/figures/auto_parameterization_1.png b/content/zh/docs/AboutopenGauss/figures/auto_parameterization_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fbd3aad03d54af377aa08028f704b73ed1f10188 Binary files /dev/null and b/content/zh/docs/AboutopenGauss/figures/auto_parameterization_1.png differ diff --git "a/content/zh/docs/AboutopenGauss/\350\207\252\345\212\250\345\217\202\346\225\260\345\214\226.md" "b/content/zh/docs/AboutopenGauss/\350\207\252\345\212\250\345\217\202\346\225\260\345\214\226.md" new file mode 100644 index 0000000000000000000000000000000000000000..cbffa508484dd28e908b79d1029e221ca84829e6 --- /dev/null +++ "b/content/zh/docs/AboutopenGauss/\350\207\252\345\212\250\345\217\202\346\225\260\345\214\226.md" @@ -0,0 +1,66 @@ +# 自动参数化 + +## 可获得性 + +本特性自openGauss 7.0.0-RC1版本开始引入。 + +## 特性简介 + +openGauss的自动参数化功能是在需要反复执行相似/相同的SQL简单语句的情境下,通过复用执行计划缓存以减少SQL语句的执行时间。 + +## 客户价值 + +提升大量相似简单SQL重复执行情况下的性能表现。 + +## 特性描述 + +在存在大量相似/重复的简单SQL语句的场景下,对SQL语句进行参数化操作, 将其作为键值,并将相应的执行计划进行缓存,后续可通过相同参数化SQL语句直接寻找对应执行计划缓存,进而减少SQL语句执行时在查询重写,计划生成步骤所消耗的时间。 + +![](./figures/auto_parameterization_1.png) + +## 特性增强 + +无。 + +## 特性约束 + +- 仅支持IUD(Insert, Update, Delete)三类DML。 +- 仅支持Simple Query Protocol, 不支持Extended Query Protocol。 +- SQL语句的长度必须小于等于512。 +- 不支持RETURNING关键词。 +- 不支持WITH CLAUSE。 +- 不支持UPSERT CLAUSE。 +- 不支持HINT。 +- 不支持子查询。 +- 不支持ORDER BY关键词。 +- 不支持LIMIT关键词。 +- 不支持函数。 +- 不支持COLLATE关键词。 +- 不支持值的类型转换。 +- 不支持使用NULL关键词。 +- 不支持IGNORE关键词。 +- 不支持DEFAULT VALUES与DEFAULT关键词。 +- 不支持USING关键词。 +- 不支持ON DUPLICATE KEY UPDATE语法。 +- 不支持PARTITION关键词。 +- 最大可存储缓存计划为512。 + +## 依赖关系 + +无。 + +## 使用指导 + +自动参数化功能由会话级别GUC参数控制,开启相关参数后满足条件的SQL语句将会通过自动参数化功能处理。下列参数的设置可参考[此处](../DatabaseReference/其他优化器选项.md#section6842184123547)进行设置。 + +- **开启自动参数化功能** + +``` +SET ENABLE_QUERY_PARAMETERIZATION=ON; +``` + +- **设置最大可缓存的执行计划数量** + +``` +SET MAX_PARAMETERIZED_QUERY_STORED=512; +``` diff --git "a/content/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" "b/content/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" index 8f63888a3745162c6edf82fc0f2aa41edfc2019f..e29c3d99518e6d098e5dc4149d5bd425a60b8f1b 100644 --- "a/content/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" +++ "b/content/zh/docs/DatabaseReference/\345\205\266\344\273\226\344\274\230\345\214\226\345\231\250\351\200\211\351\241\271.md" @@ -844,3 +844,26 @@ OPTIMIZE\_PLAN表示通过动态规划算法进行代价估算的最优plan, - off:表示允许计划缓存变更结果类型格式。 **默认值**:true + +## enable\_query\_parameterization + +**参数说明**:该参数为自动参数化功能控制参数,开启该功能时满足条件的SQL语句将会进入参数化流程进行处理。 + +该参数属于USERSET类型参数,请参考[表1](../DatabaseAdministrationGuide/重设参数.md#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。 + +**取值范围**:布尔型。 + +- on:开启自动参数化功能。 +- off:关闭自动参数化功能。 + +**默认值**:off + +## max\_parameterized\_query\_stored + +**参数说明**:该参数用于设置自动参数化功能开启时, 最大可缓存的执行计划数量。 + +该参数属于USERSET类型参数,请参考[表1](../DatabaseAdministrationGuide/重设参数.md#zh-cn_topic_0283137176_zh-cn_topic_0237121562_zh-cn_topic_0059777490_t91a6f212010f4503b24d7943aed6d846)中对应设置方法进行设置。 + +**取值范围**:整型,1\~512。 + +**默认值**:256 \ No newline at end of file diff --git a/content/zh/menu/index.md b/content/zh/menu/index.md index dd1d885fc3dac86691d912709a9f6ad1a7565918..1917fa35b047b0484df4cba03908ce3dd718a40b 100644 --- a/content/zh/menu/index.md +++ b/content/zh/menu/index.md @@ -52,6 +52,7 @@ headless: true - [用户态网络]({{< relref "./docs/AboutopenGauss/用户态网络.md" >}}) - [非资源池化主备同步加速]({{< relref "./docs/AboutopenGauss/非资源池化主备同步加速.md" >}}) - [HTAP 行列融合]({{< relref "./docs/AboutopenGauss/行列融合.md" >}}) + - [自动参数化]({{< relref "./docs/AboutopenGauss/自动参数化.md" >}}) - [高可用]({{< relref "./docs/AboutopenGauss/高可用.md" >}}) - [主备机]({{< relref "./docs/AboutopenGauss/主备机.md" >}}) - [逻辑复制]({{< relref "./docs/AboutopenGauss/逻辑复制.md" >}})