【YashanDB知识库】绑定参数,同一个sql多个执行计划的问题

问题现象

同一个sql有两个执行计划,是否合理?

它的EXECUTIONS,ELAPSED_TIME等统计信息怎么看,是独立分开的还是统一计算的?

如下图:

问题影响版本

tpcc测试:23.2.1.100

问题的风险及影响

影响EXECUTIONS等sql统计信息的计算

问题发生原因

同一条sql,特别是绑定参数的sql,参数类型不同,会导致生成不同的执行计划。

分析及处理过程

例子测试分析

复现例子:

drop table if exists tmp2;
create table tmp2(c1 int,c2 double,c3 int,c4 int,c5 int,c6 int,c7 int,c8 timestamp,c9 varchar(500),c10 int) ;

如上,第二个参数是int和double时,生成了两个执行计划,有两个plan_hash_value,如下图:

后跑几次,发现其中executions、cpu_time这些值共享,统计到一起,所以两条结果的这些字段值一样。

缓存相关视图

经验分享

1、同一个sql,有多个执行计划,是正常现象

2、v$sql中的executions、cpu_times等一些统计字段,同一个sql都是同样的值,不能做加减等操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值