`

oracle中使用绑定变量的好处的例子

阅读更多

oracle中使用绑定变量的好处的例子

在oracle中,sql语句使用绑定变量能大幅度提高sharpool的利用率,提高sql语句执行的效率,下面用一个很简单的例子演示使用绑定变量和不使用绑定变量的差别。

总体步骤如下:

1、创建一个很简单的表,只有两个字段,字段类型都为varchar2(5)
2、用一个不使用绑定变量的plsql向表中插入10000条记录,记录运行时间
3、用一个使用绑定变量的plsql向表中插入10000条记录,记录运行时间
4、对比两中方法所用时间多少

具体步骤:


1、创建表

scott@CNHTM> create table test(col1 varchar2(5),col2 varchar2(5));

Table created.

2、不使用绑定变量插入10000条记录

首先设置timing on,以便查看plsql执行了多长时间
scott@CNHTM> set timing on

插入1000条记录

scott@CNHTM> declare
2 s varchar2(300);
3 begin
4 for i in 1..10000 loop
5 s:='insert into test (col1,col2) values('||i||','||(i+1)||')';
6 execute immediate s;
7 end loop;
8 end;
9 /

PL/SQL procedure successfully completed.

Elapsed: 00:00:16.63

运行时间为16.63秒

scott@CNHTM> rollback;

Rollback complete.

Elapsed: 00:00:00.23

3、使用绑定变量插入10000条记录

scott@CNHTM> declare
2 s varchar2(300);
3 begin
4 for i in 1..10000 loop
5 s:='insert into test (col1,col2) values(:1,:2)';
6 execute immediate s using i,i+1;
7 end loop;
8 end;
9 /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.95

执行时间为0.95秒

scott@CNHTM> rollback;

Rollback complete.

Elapsed: 00:00:00.19

4、时间对比

不使用绑定变量的时候,需要16.63秒,使用绑定变量的时候为0.95秒,差异还是很大的。所以在写程序或plsql的时候,尽量使用绑定变量,可以大大提高数据库的性能。

分享到:
评论

相关推荐

    在Java中实现Oracle变量的绑定方法 .doc

    在Java中实现Oracle变量的绑定方法 .doc 在Java中实现Oracle变量的绑定方法 .doc

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     3.2.7 在DDL,DML语句中使用子查询  3.3 维护数据  3.3.1插入数据  3.3.2 更新数据  3.3.3 删除数据  3.4 事务与事务控制  3.4.1 事务的概念  3.4.2 事务控制的基本语句及其功能  3.4.3 事务的...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    5.3.4 RAC中的SCN 5.4本章小结 第6章 RAC的高可用性连接 6.1 Oracle Net Service 6.1.1 Oracle Net结构 6.1.2 Oracle Net命名方法 6.1.3 Oracle Net工作原理 6.1.4 Oracle Net Listener工作原理 6.1.5 JDBC...

    Loadrunner-oracle连接/修改update/select用例

    //下面这些句柄等变量的申请都可以照着帮助中的例子写 /***************** 这里省略了,具体见附件 */ Action() { lrd_ora8_stmt(OraStm1,"select service_num from auto_zb_provision where rownum,1,0,0); //...

    C#.net_经典编程例子400个

    68 实例059 在ListBox控件间交换数据 68 实例060 将数据库数据添加到组合框中 70 实例061 借助绑定控件实现数据选择录入 71 实例062 ListBox拒绝添加重复信息 72 2.6 选择类控件应用 73...

    oracle调试存储过程的过程详解

    oracle如果存储过程比较复杂,我们要定位到错误就比较困难,那么可以存储过程的调试功能 先按简单的存储过程做个例子,就是上次做的存储过程(proc_test) ...6、将变量添加到监视器中,进行监控 监视界面 7、最后执

    SQL 优化原则

    ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等; (5) 在SQL*Plus , SQL*Forms和Pro*C中重新设置ARRAYSIZE参数, 可以增加每次数据库访问的检索数据量 ,建议值为200 (6) ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    asp.net知识库

    在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库...

    php网络开发完全手册

    2.5.1 简单的表达式例子 36 2.5.2 表达式的分类 36 2.5.3 算术操作表达式 36 2.5.4 字符串操作表达式 38 2.5.5 逻辑操作表达式 38 2.5.6 比较操作表达式 39 2.5.7 位操作表达式 40 2.5.8 运算符的优先级 41 2.6 特殊...

    spring chm文档

    6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...

    Spring 2.0 开发参考手册

    6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...

    SQL性能优化

    1.2 使用绑定变量,避免常量的直接引用。 示例:以下书写不符合本规范。 INSERT INTO sm_users (user_id, user_name, created_by, creation_date) VALUES (1, 'Tang', -1, SYSDATE); 建议用如下方式操作: ...

Global site tag (gtag.js) - Google Analytics