oracle 中的variable是什么意思啊

安装了Oracle11g整整数据库,以前正Oracle都是安装好修改配置NET Manager就可以连接了。可是今天出现了一点小意外,这里总结一下。

(一) 安装检查的问题

在Win7中安装Oracle11g 企业版,在安装的过程中出现一个问题:

在文件中发现SID_NAME=CLREXTPROC 我的服务ID名不是这个而是OracleRoot,SID其实就是全局数据库名。我将其修改为OracleRoot,重新启动监听服务,连接仍然失败。于是我删除上诉文件中的PROGRAM=extproc 保存文件重启服务即连接成功。

平时很少整Oracle,昨日听朋友说了一个Oracle的问题于是安装想试试。结果安装就出现了这么多问题,很多人在安装软件的时候出现问题就选择了退步不安装了,其实努力解决问题的心态很重要特别是对做程序有崇高兴趣的人。想想解决办法,问题总是会解决的。 (文章没啥水准就不发首页了,希望对大家有帮助)

}

oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析.

一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行), 而且引起的问题不能通过增加内存条和cpu的数量来解决。

之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改。当一个sql语句提交后,oracle会首先检查一下共享缓冲池(shared pool)里有没有与之完全相同的语句,如果有的话只须执行软分析即可,否则就得进行硬分析。

而唯一使得oracle 能够重复利用执行计划的方法就是采用绑定变量。绑定变量的实质就是用于替代sql语句中的常量的替代变量。绑定变量能够使得每次提交的sql语句都完全一样。


pl/sql很多时候都会自动绑定变量而无需编程人员操心,即很多你写得sql语句都会自动利用绑定变量,如下例所示:

也许此时你会想要利用绑定变量来替代p_empno,但是这是完全没有必要的,因为在pl/sql中,引用变量即是引用绑定变量。

但是在pl/sql中动态sql并不是这样。

在vb,java以及其他应用程序中都得显式地利用绑定变量。

对于绑定变量的支持不仅仅限于oracle,其他RDBMS向SQLSERVER也支持这一特性。

但是并不是任何情况下都需要使用绑定变量, 下面是两种例外情况:

1.对于隔相当一段时间才执行一次的sql语句,这是利用绑定变量的好处会被不能有效利用优化器而抵消

2.数据仓库的情况下。

}

我要回帖

更多关于 variable是什么意思啊 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信