文档详情

oracle使用变量可以带来的好处.doc

发布:2017-04-20约字共8页下载文档
文本预览下载声明
绑定变量是Oracle解决硬解析的首要利器,能解决OLTP系统中library cache的过度耗用以提高性能。然刀子磨的太快,使起来锋利,却容 易折断。凡事皆有利弊二性,因地制宜,因时制宜,全在如何权衡而已。本文讲述了绑定变量的使用方法,以及绑定变量的优缺点、使用场合。 ? 一、绑定变量 ??? 提到绑定变量,就不得不了解硬解析与软解析。硬解析简言之即一条SQL语句没有被运行过,处于首次运行,则需要对其进行语法分析,语 义识别,跟据统计信息生成最佳的执行计划,然后对其执行。而软解析呢,则是由于在library cache已经存在与该SQL语句一致的SQL语句文本 、运行环境,即有相同的父游标与子游标,采用拿来主义,直接执行即可。软解析同样经历语法分析,语义识别,且生成hash value ,接下来 在library cache搜索相同的hash value ,如存在在实施软解析。有关更多的硬解析与软解析以及父游标,子游标请作如下参考: ??? ??? 有关硬解析与软解析,请参考: HYPERLINK /database/201110/107426.html \t _blank oracle中的软解析和硬解析 ??? 有关父游标、子游标,请参考: HYPERLINK /database/201202/120809.html \t _blank 父游标、子游标及共享游标 ??? ??? 绑定变量 ????? 首先其实质是变量,有些类似于我们经常使用的替代变量,替代变量使用占位符,只不过绑定变量使用: ????? 替代变量使用时为variable_para,相应的绑定变量则为:bind_variable_para ????? 通常一个SQL语句包含动态部分和静态部分,占位符实质是SQL语句中容易发生变化的部分,通常为其条件或取值范围。动态部分在一般情 ????? 况下(数据倾斜除外),对执行计划的生成的影响是微乎其微的。故同一SQL语句不同的动态部分产生的执行计划都是相同的。 ??????? 二、绑定变量的使用 ??? 1、在SQLPlus中使用绑定变量 [sql] view plaincopyprint? SQL variable eno number;?????????????????????????? --使用variable定义变量????????????????????????????????????????????? SQL exec :eno:=7788;??????????????????????????????????????????????????????????????????????????????????????????????????? SQL select ename,job,sal from emp where empno=:eno;???????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ENAME????? JOB????????????? SAL????????????????????????????????????????????????????????????????????????????????????????? ---------- --------- ----------????????????????????????????????????????????????????????????????????????????????????????? SCOTT????? ANALYST???????? 3000?????????? ??????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? SQL col sql_text format a55????????????????????????? ????????????????????????????????????????????????????????????????
显示全部
相似文档