pl/sql 绑定变量

 

   PL/SQL 绑定变量

在oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.
一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解析不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行), 而且引起的问题不能通过增加内存条和cpu的数量来解决。之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。

           要复用缓存语句,SQL语句必须与缓存中的语句相同。

     查询shared pool 中的sql可以使用  v$sql 视图。

 

 pl/sql 绑定变量例子:

 

           

         

 

          

          

           上面这条语句执行了1000次硬解析,因为每条语句都不一样,不能共享。

           

             下面的语句则使用到了共享:

            

             

             

 

             查看shared pool中,只找到了一条语句说明使用了绑定变量。

           

 

 

注意点:

      1. EXECUTE IMMEDIATE将不会提交一个DML事务执行,应该显式提交

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值