KingbaseES 绑定变量与游标共享

 对于重复执行的SQL,需要使用绑定变量,避免SQL的重复解析。但是,并不是说使用了绑定变量,就一定能避免硬解析。具体可以参见:https://www.cnblogs.com/kingbase/p/16191668.html

以下举例说明 参数 plan_cache_mode 对于游标共享的影响。

使用绑定变量时,系统自动根据数据情况,使用软解析。用时1345ms.

test=# declare
test-#   v_temp integer;
test-# begin
test-#   for i in 1..100000 loop
test-#     select count(*) into v_temp from tab1 where id=i;
test-#   end loop;
test-# end;
test-# /
ANONYMOUS BLOCK
Time: 1345.537 ms (00:01.346)

 

使用绑定变量,但是强制硬解析。用时 4691ms

test=# set plan_cache_mode=force_custom_plan;
SET
Time: 0.318 ms
test=# declare
test-#   v_temp integer;
test-# begin
test-#   for i in 1..100000 loop
test-#     select count(*) into v_temp from tab1 where id=i;
test-#   end loop;
test-# end;
test-# /
ANONYMOUS BLOCK
Time: 4691.001 ms (00:04.691)

 

posted @ 2022-04-26 10:10  KINGBASE研究院  阅读(85)  评论(0编辑  收藏  举报