Oracle实用-01:绑定变量
2013-09-08 21:59
162 查看
数据库虽然在学校系统学习过,但是在工作中真正使用起来收获又是不一样的,今天起打算将项目中使用到的技术再分享出来,不以书本的顺序,只从碰到的问题为顺序。
虽然不是纯粹的数据库工程师,但是每个程序员总免不了要写sql语句。最近一直在写服务,从数据库读取数据,但是当项目上线之后再回过头来看这些sql语句,总发现有很多是相似的,不如where条件有很多是一样的。这让我想起一句话,大意是:如果程序中有很多相同的代码,那么尽量去提取出来(当然是尽量,不是一定要提取,这个要注意)。那么sql语句不也是一样吗,比如,如果有相似的查询语句,就应该作为存储过程公共使用。比如下面说的,变量绑定技术。
Oracle在执行sql查询语句时,首先从共享池中查找当前使用的完全相同的(指所有字符相同,字母大小写相同、空格相同)查询sql语句。所谓共享池中就是指都是经过解析和优化的语句。所以如果共享池中有公用的语句,那么减少了重新解析和优化,效率将会提高。下面来看变量绑定如何使用。
有一个tb_Name表,有id、name字段。
那么,声明一个变量:_setid
当然变量绑定只有在反复使用某个语句时使用。
虽然不是纯粹的数据库工程师,但是每个程序员总免不了要写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这样节省了解析优化的时间。
当然变量绑定只有在反复使用某个语句时使用。
相关文章推荐
- Oracle实用-01:绑定变量
- Oracle实用-01:绑定变量
- rust 语法和语义 01 变量绑定
- oracle 的绑定变量
- Oracle 绑定变量 详解
- ORACLE 绑定变量用法总结
- Oracle 绑定变量窥探
- ORACLE 绑定变量用法总结
- ORACLE 绑定变量用法总结
- oracle技术之如何绑定变量
- ORACLE 绑定变量用法总结
- Oracle 数据库的绑定变量特性及应用
- Oracle 绑定变量窥探
- oracle变量绑定
- Oracle PL/SQL 绑定变量
- oracle工作笔记之通过绑定变量提高查询效率
- Oracle读书摘录1---为什么要书写绑定变量的SQL语句
- Oracle什么时候使用绑定变量性能反而更差
- oracle 绑定变量(bind variable)
- Oracle 变量绑定与变量窥视合集