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)
KINGBASE研究院