没有使用绑定变量导致大量硬解析

本文通过实例展示了绑定变量在数据库操作中的重要性,如何避免因数据类型变化导致的硬解析,从而影响系统性能。分析了当变量类型改变时,是否触发硬解析的情况,并解释了硬解析对系统资源的影响。
摘要由CSDN通过智能技术生成

提到shared pool,不得不提绑定变量,在LOTP线业务系统中是很关键的一个性能基准。
可以举一个例子来简单说明一下。
1、创建一个表test_var,然后传入两个变量值,类型不同,查看执行的情况。

SH@prod>create table test_var as select object_id id,object_name name from user_objects where rownum<3;

Table created.

Elapsed: 00:00:00.78
SH@prod>update test_var set name=‘aaa’ where rownum<2;

1 row updated.

Elapsed: 00:00:00.12
SH@prod>update test_var set name=‘bbb’ where name!=‘aaa’;

1 row updated.

Elapsed: 00:00:00.15
SH@prod>alter system flush shared_pool;
System altered.

SH@prod>variable name varchar2(100);
SH@prod>exec :name:=‘aaa’;

PL/SQL procedure successfully completed.

SH@prod>select * from test_var where name=:name;

ID NAME

 13962 aaa

运行语句之后,查看sql_id和hash值,从v s q l a r e a 中 可 以 查 看 v e r s i o n c o u n t , 如 果 发 生 了 硬 解 析 , v e r s i o n c o u n t 就 会 递 增 。 S H @ p r o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值