Oracle绑定变量分级-实测
在oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做 硬解析 ,一种叫做 软解析 . 一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行), 而且引起的问题不能通过增加内存条和cpu的数量来解决。这是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。 而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。 普通sql语句: update ipsdba_test set sn1=‘SN11’,sn2=‘SN12’,sn3=‘SN13’ where sn_key=1; update ipsdba_test set sn1=‘SN21’,sn2=‘SN22’,sn3=‘SN23’ where sn_key=1; update ipsdba_test set sn1=‘SN31’,sn2=‘SN32’,sn3=‘SN33