`

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

    为了解决这些问题,我们可以使用预编译的PreparedStatement对象来绑定变量,例如: ```java String sql = "select name from oms_user where id=?"; PreparedStatement pstmt = connection.prepareStatement(sql); ...

    Java中Oracle操作绑定变量使用用户工具模块解决方案

    ### Java中Oracle操作绑定变量使用用户工具模块解决方案 #### 一、背景介绍 在Java开发过程中,特别是与Oracle数据库交互的应用场景中,SQL语句的编写及执行效率一直是开发者关注的重点之一。为了提高SQL语句的...

    Oracle数据库的绑定变量特性及应用.pdf

    Oracle数据库的绑定变量是其优化性能的关键特性之一,主要用于提高应用程序的可伸缩性和效率。在数据库系统设计中,理解并充分利用绑定变量至关重要,因为它们能够显著减少数据库资源的消耗,提升系统的整体性能。 ...

    Oracle数据库绑定变量特性及应用

    本文将深入探讨绑定变量的原理、优势以及如何在实际应用中使用。 首先,为什么我们要使用绑定变量?这主要是为了提高应用程序的可伸缩性和性能。Oracle的共享池是一个内存结构,用于存储编译后的SQL语句和PL/SQL块...

    Oracle_数据库的绑定变量特性及应用终稿.pdf

    从这个例子中可以看出,使用绑定变量的查询比不使用绑定变量的查询快得多,这是因为绑定变量使得数据库能够复用已解析的执行计划,减少了不必要的解析和优化工作,从而提升了系统效率。 总的来说,Oracle的绑定变量...

    sql绑定变量

    绑定变量允许在SQL语句中使用程序变量作为参数,这不仅提高了代码的可读性和维护性,还增强了SQL语句的灵活性和效率。 ### SQL绑定变量的重要性 在数据库操作中,频繁地执行相同或相似的SQL语句会消耗大量的系统...

    Oracle Sql高效语句的写法诀窍

    - 绑定变量名称一致:在同一个SQL语句中,即使在运行时赋予不同的值,使用相同名称的绑定变量也能够使得SQL语句共享。 性能测试例子: 文章中提到了一个具体的例子,通过对比两个存储过程的执行时间来展示绑定变量...

    《Oracle9i&10g编程艺术》学习心得

    绑定变量是指在SQL语句中使用特定的占位符(如`?`)来代替实际的参数值。当执行SQL语句时,这些占位符会被实际的参数值替换。这种方式可以避免每次执行相同或相似SQL语句时都要重新解析和编译的情况,从而提高性能。...

    oracle bpm 12c的例子

    在这个例子中,我们将探讨如何使用Oracle BPM 12c 创建一个简单的休假流程。 首先,确保你拥有正确的环境配置,包括Oracle BPM 12c 12.1.3.0.0_bpm、JDK 1.7.0_u45、BPM Bundle Patch 12.1.3.0.3以及Apache Derby...

    oracle自带的oci程序例子

    标题中的“oracle自带的oci程序例子”意味着这些示例代码是Oracle数据库安装包中的一部分,旨在帮助用户快速上手和深入理解OCI的使用方法。由于某些Oracle版本可能未包含这些示例,因此将它们保存或分享出来就显得尤...

    C++使用OCI写的oracle数据库操作例子

    在提供的压缩包文件中,"LOB"可能是一个包含具体示例代码的文件,演示了如何使用C++和OCI处理Oracle数据库中的LOB数据。通过阅读和学习这个示例,你可以更好地理解上述知识点的具体实现。 综上所述,C++配合OCI库...

    Oracle性能优化技巧

    2. **绑定变量的影响**:使用绑定变量的SQL语句,虽然其文本内容相同,但当实际绑定的值发生变化时,Oracle可能会根据新的值重新计算执行计划。这意味着即使是使用了绑定变量的SQL,也可能因为输入参数的不同而导致...

    超酷30个Oracle语句优化规则详解

    - **绑定变量的影响**:如果两个SQL语句中使用了不同的绑定变量名称,即使在运行时这些变量的实际值相同,Oracle也不会认为这两个语句是相同的,因此不会共享执行计划。 #### 总结 通过合理选择优化器模式、利用...

    Oracle的执行计划

    4. **绑定变量类型一致性**:如果SQL语句中使用了绑定变量,则这些变量的类型也必须一致。 #### 二、Rowid的概念 Rowid是一个非常特殊的列,用于唯一标识表中的每一行。它包含了表空间号、数据块号和行号等信息,...

    Oracle 学习笔记

    不能在DDL语句中使用绑定变量,例如: ```sql EXECUTE IMMEDIATE 'CREATE TABLE a AS SELECT * FROM b WHERE x = :x' USING x; ``` 5. **PL/SQL中的批量绑定变量(FORALL):** - `FORALL`循环可以用于批量...

    oracle 存储过程 例子java 调用过程

    此外,如果存储过程涉及大量数据操作,还应注意性能优化,如使用绑定变量、合理设计索引等。 总之,Oracle存储过程和Java的结合使用能有效提高应用效率和数据库管理能力。通过理解存储过程的创建、调用机制,开发者...

    Oracle_OCI.rar_oci for linux_oci 实现_oracle_oracle linux oci_orac

    7. **性能优化**:通过预编译SQL语句、批量处理和使用绑定变量,可以显著提高应用程序的性能。 8. **内存管理和资源释放**:记得在完成数据库操作后,使用适当的OCI函数释放分配的内存和资源,如OCILogoff、...

    Oracle 11g ProC_C++编程.rar

    Oracle 11g ProC/C++编程是数据库领域中一种高级接口,允许开发人员使用C或C++语言来编写过程化代码,与Oracle数据库进行交互。这种技术在处理复杂业务逻辑、高性能计算以及数据库内存储过程时非常有用。ProC/C++...

    Oracle 11g ProC_C++编程艺术 源代码

    8. **绑定变量**:为了提高性能和减少SQL注入风险,Pro*C/C++支持绑定变量。变量可以绑定到SQL语句的占位符上,然后在运行时传递值。 9. **PL/SQL包的使用**:在Oracle 11g中,PL/SQL包是一种组织和重用代码的方式...

    Oracle动态执行SQL四种方式的例子

    使用`DBMS_SQL.OPEN_CURSOR`打开一个游标,然后通过`DBMS_SQL.PARSE`解析SQL语句,并用`DBMS_SQL.BIND_VARIABLE`绑定变量,最后调用`DBMS_SQL.EXECUTE`执行删除操作。 #### 示例2:执行DDL语句 ```sql CREATE OR ...

Global site tag (gtag.js) - Google Analytics