Oracle 10g中一个关于绑定变量和非绑定变量的测试对比
首先创建测试表并记录解析统计数据:
进行循环插入数据,以下代码并未使用绑定变量:
发现在增加了11个硬解析.
查询v$sqlarea视图,可以找到这些不能共享的SQL,注意每条SQL都只执行了一次,这些SQL不仅解析要消耗密集的SQL资源,也要占用共享内存存储这些不同的SQL代码:
重建测试表,进行第二次测试:
这一次使用绑定变量,同样10次数据插入:
现在看一下SQL解析的统计数据库,硬解析由原来的145增加到147.
对于该SQL,共享池中只存在一份,解析一次,执行10次,这就是绑定变量的优势所在:
从Oracle从8.1.6开始提供了一个新的初始化参数用以在Server端进行强制变量绑定,这个参数就是cursor_sharing。最初这个参数有两个可选设置:exact和force。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。