比较基础,随手记录。
Sql Tuning ST-10001
今天在OEM中查看TOP事件,发现这一条Sql语句。可能是应用层没有使用绑定变量,导致重复sql出现。重复的条数达到500。
Target Sql:
select *
from tbl_name
where itemid = '0ndoag'
AND userid = 8085256378
AND type = 2;
执行计划如下:存在两个问题
1:字段userid 为Varchar2(12),却使用了数据进行赋值,导致已经存在的索引没有被使用。
2:itemid 存在函数索引 nvl(itemid,'null'), 表达式应为: nvl(itemid,'null') = '0ndoag';
修改之后的Sql语句:
select *
from tbl_name
where nvl(itemid,'null') = '0ndoag'
AND userid = '8085256378'
AND type = 2;
修改后的执行计划:
提交给开发人员进行修改,并上线代码。