Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


过程函数中SQL重用多少次后重解析规划(proc_reuse_cnt)

📄字数 599
👁️阅读量 加载中...

引入版本

v11.0.0

功能描述

存储过程或函数中的 SQL 在执行多少次后需要强制重新解析并规划执行计划。

参数属性

属性属性值
参数类型INTEGER
默认值1
取值范围[0, 10000]
影响范围系统级
修改方式在线修改,立即生效

使用场景说明

  1. 存储过程或函数在编译过程中将静态 SQL 解析规划生成执行节点,编译后的 SQL 执行计划将固定保持不变,对相关依赖表的数据变化无感知,这会导致 SQL 执行计划可能不是最优。proc_reuse_cnt 则用于控制静态 SQL 在重用一定次数之后重新编译,以达到修正 SQL 执行计划的目的。
  2. proc_reuse_cnt 控制过程(函数)中 SQL 的执行行为。
proc_reuse_cnt作用及影响
0每次执行存储过程或函数中的静态 SQL 时,都重用已有的执行计划
1每次执行存储过程或函数中的静态 SQL 时,都重新解析 SQL 并生成新的执行计划
100每执行存储过程或函数中的静态 SQL 满 100 次时,都重新解析 SQL 并生成新的执行计划

示例

  • 在线修改 proc_reuse_cnt
sql
SQL> set proc_reuse_cnt to 1;

Execute successful.
Use time:3 ms.
  • 在线查看 proc_reuse_cnt
sql
SQL> show proc_reuse_cnt;

+----------------+
| PROC_REUSE_CNT |
+----------------+
| 1              |
+----------------+

(1 row)
Use time:0 ms.