• Oracle实用-01:绑定变量


    数据库虽然在学校系统学习过,但是在工作中真正使用起来收获又是不一样的,今天起打算将项目中使用到的技术再分享出来,不以书本的顺序,只从碰到的问题为顺序。

    虽然不是纯粹的数据库工程师,但是每个程序员总免不了要写sql语句。最近一直在写服务,从数据库读取数据,但是当项目上线之后再回过头来看这些sql语句,总发现有很多是相似的,不如where条件有很多是一样的。这让我想起一句话,大意是:如果程序中有很多相同的代码,那么尽量去提取出来(当然是尽量,不是一定要提取,这个要注意)。那么sql语句不也是一样吗,比如,如果有相似的查询语句,就应该作为存储过程公共使用。比如下面说的,变量绑定技术。

    Oracle在执行sql查询语句时,首先从共享池中查找当前使用的完全相同的(指所有字符相同,字母大小写相同、空格相同)查询sql语句。所谓共享池中就是指都是经过解析和优化的语句。所以如果共享池中有公用的语句,那么减少了重新解析和优化,效率将会提高。下面来看变量绑定如何使用。

    有一个tb_Name表,有id、name字段。

    select * from  tb_Name where id='12345'

    假设id='12345'其他地方也用到。

    那么,声明一个变量:_setid

    begin
        :_setid:='12345';
    end

    那么在其他语句中直接使用这个变量,

    select name from tb_Name where id=:_setid

    这样节省了解析优化的时间。

    当然变量绑定只有在反复使用某个语句时使用。

  • 相关阅读:
    uva 1510
    ADN中国团队參加微软的Kinect全国大赛获得三等奖
    在 window7 window8下公布webService注意问题
    html5调用手机摄像头,实现拍照上传功能
    4、深入理解Bean
    恶补jquery(四)jquery中事件--冒泡
    html5css3杂记
    Core Data 和 sqlite3的性能对比【图】3gs,iPhone4,4s,5的性能测试。
    boost 的函数式编程库 Phoenix入门学习
    information_schema模式表介绍 processlist
  • 原文地址:https://www.cnblogs.com/pangblog/p/3310712.html
Copyright © 2020-2023  润新知