动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.关于Oracle中执行计划稳定性深入.
.优化策略.
.讲解Oracle里抽取随机数的多种方.
.oracle/sql server procedure 导.
.Powerdesigner使用建议(完整版).
.Oracle 8i R2 (8.1.6) for Windo.
.修改ORACLE7数据库maxdatafiles参.
.oracle是如何工作的(zt)--比较.
.减少临时表使用空间的几种方法.
.unix上的手工建库脚本.
.甲骨文公司举办太空游抽奖.
.如何防止某个关键文件被修改?.
.Oracle9i数据库如何支持动态重配.
.Linux: 单边生存之路.
.大侠宝典 :ORACLE 常用第三方软件.
.双机容错环境下Oracle数据库应用.
.Oracle 学习过程中的笔记以及几个.
.Oracle用户特权管理与审计(图).
.使用Oracle Text构建全文搜索应用.
.详细讲解"Oracle"服务器的常用命.

批量绑定(bulk binds):FOR循环与FORALL的性能比较

发表日期:2008-2-9 |


  通常在SQL语句中给PL/SQL变量赋值叫做绑定(Binding),一次绑定一个完整的集合称为批量绑定(Bulk Binding)。
  
  批量绑定(Bulk binds)可以通过减少在PL/SQL和SQL引擎之间的上下文切换(context switches )提高了性能.
  
  批量绑定(Bulk binds)包括:
  
  (i) Input collections, use the FORALL statement,一般用来改善DML(INSERT、UPDATE和DELETE) 操作的性能
  
  (ii) Output collections, use BULK COLLECT clause,一般用来提高查询(SELECT)的性能
  
  FORALL的语法如下:
  
  FORALL index IN lower_bound..upper_bound sql_statement;
  
  下面是一个简单测试,用以说明FORALL与FOR循环的性能差异。
  SQL> drop table blktest;
  
  Table dropped.
  
  Elapsed: 00:00:00.13
  SQL>
  SQL> CREATE TABLE blktest (num NUMBER(20), name varchar2(50));
  
  Table created.
  
  Elapsed: 00:00:00.08
  SQL>
  SQL> CREATE OR REPLACE PROCEDURE bulktest
   2 IS
   3   TYPE numtab IS TABLE OF NUMBER (20)
   4    INDEX BY BINARY_INTEGER;
   5
   6   TYPE nametab IS TABLE OF VARCHAR2 (50)
   7    INDEX BY BINARY_INTEGER;
   8
   9   pnums  numtab;
   10   pnames  nametab;
   11   t1    NUMBER;
   12   t2    NUMBER;
   13   t3    NUMBER;
   14 BEGIN
   15   FOR j IN 1 .. 1000000
   16   LOOP
   17    pnums (j)     := j;
   18    pnames (j)    := 'Seq No. ' TO_CHAR (j);
   19   END LOOP;
   20
   21   SELECT DBMS_UTILITY.get_time
   22    INTO t1
   23    FROM DUAL;
   24
   25   FOR i IN 1 .. 1000000
   26   LOOP
   27    INSERT INTO blktest
   28       VALUES (pnums (i), pnames (i));
   29   END LOOP;
   30
   31   SELECT DBMS_UTILITY.get_time
   32    INTO t2
   33    FROM DUAL;
   34
   35   FORALL i IN 1 .. 1000000
   36    INSERT INTO blktest
   37       VALUES (pnums (i), pnames (i));
   38
   39   SELECT DBMS_UTILITY.get_time
   40    INTO t3
   41    FROM DUAL;
   42
   43   DBMS_OUTPUT.put_line ('Execution Time (hsecs)');
   44   DBMS_OUTPUT.put_line ('---------------------');
   45   DBMS_OUTPUT.put_line ('FOR loop: ' TO_CHAR (t2 - t1));
   46   DBMS_OUTPUT.put_line ('FORALL:  ' TO_CHAR (t3 - t2));
   47 END;
   48 /
  
  Procedure created.
  
  Elapsed: 00:00:01.46
  SQL> exec bulktest;
  Execution Time (hsecs)
  ---------------------
  FOR loop: 30361
  FORALL:  4792
  
  PL/SQL procedure sUCcessfully completed.
  
  Elapsed: 00:06:32.92
  
  我们可以看到FORALL较FOR循环性能大大提高。

上一篇:如何使用Oracle的Decode函数进行多值判断 人气:392
下一篇:tkprof和sql trace 人气:513
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-4 天空网络电影系统SKYUC v2.5.1 B
2008-7-4 PHPDug v2.0 多国语言版
2008-7-4 Drupal v7.x-dev Build 080704
2008-7-4 乐学LBBS无限级目录图片直读系统
2008-7-4 生成静态的美女小偷程序 v1.2
2008-7-4 顶级DJ舞曲网 v1.2 黑色正式版
2008-7-4 生活名片
2008-7-4 轩魂ASP中文验证码
2008-7-4 ip138手机归属地小偷
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報