对300万一张表数据,用游标进行循环,不同写法的效率比较

对300万一张表数据,用游标进行循环,不同写法的效率比较
 
1、显示游标
 
declare
    cursor cur_2 is select a.cust_name from ea_cust.cust_info a;
    cust_id varchar2(100);
    
begin
    open cur_2;
    loop
        fetch cur_2 into cust_id;
        exit when cur_2%notfound;
        NULL;
    end loop;
    close cur_2;
end;
 
--耗时48秒
 
2、隐式游标
 
declare
    
begin
    for cur_2 in (select c.cust_name from ea_cust.cust_info c) loop
    
       NULL; 
    
    end loop;
 
end;
 
--耗时16秒
 
3、bulk collect into + cursor
 
declare
    cursor cur_3 is select a.cust_name from ea_cust.cust_info a;
    type t_table is table of varchar2(100);
    c_table t_table;
    to_cust_id varchar2(100); 
begin
    open cur_3;
    loop
         fetch cur_3 bulk collect into c_table limit 100;
         exit when c_table.count = 0;
         for i in c_table.first..c_table.last loop
             null;
             
         end loop;         
    end loop;
    commit;
end;
 
--耗时13秒,看样子这种最快

Oracle

对300万一张表数据,用游标进行循环,不同写法的效率比较
摘要: 对300万一张表数据,用游标进行循环,不同写法的效率比较1、显示游标declare cursor cur_2 is select a.cust_name from ea_cust.cust_info a; cust_id varchar2(100); begin open cur_2; loop fetch cur_2 into cust_id; exit when cur_2%notfound; NULL; end loop; close cur_2;end;--耗时48秒2、隐式游标declare begin for cur_2 in (select c.c...阅读全文

posted @ 2013-01-06 18:12 Code changes life 阅读(563) | 评论 (0) 编辑

oracle行列转换
摘要: Oracle 行列转换1、固定列数的行列转换如student subject grade--------- ---------- --------student1 语文 80student1 数学 70student1 英语 60student2 语文 90student2 数学 80student2 英语 100……转换为语文 数学 英语student1 80 70 60student2 90 80 100……语句如下:select student,sum(decode(subject,'语文', grade,null)) "语文",sum(decode(阅读全文

posted @ 2013-01-06 16:38 Code changes life 阅读(334) | 评论 (0) 编辑

数据库关联映射建表图示
摘要: ~总结一下数据库的 一对多、多对一、一对一、多对多 关系 以及对应的建表方式~关联映射:一对多/多对一存在最普遍的映射关系,简单来讲就如球员与球队的关系;一对多:从球队角度来说一个球队拥有多个球员 即为一对多多对一:从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图:关联映射:一对一一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。图示如下:一对一外键关联:一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系关联映射:多对多多对多关系也很常见,例阅读全文

posted @ 2013-01-04 17:01 Code changes life 阅读(153) | 评论 (0) 编辑

Oracle中查询正锁表的用户及释放被锁的表的方法
摘要: 查询oracle锁定的表及杀掉锁表的进程,注意查看的时候要用sys/sys 管理员的身份登录1、首先查看锁定的表太进程:SELECT substr(v$lock.sid,1,4) "SID", serial#, V$SESSION.sid, substr(username,1,12) "UserName", substr(object_name,1,25) "ObjectName", v$lock.type "LockType", www.2cto.com decode(rtrim(substr(lmode,1,4阅读全文

posted @ 2012-12-27 14:43 Code changes life 阅读(1551) | 评论 (0) 编辑

oracle小常识
摘要: 一、oracle时间类型的处理1、用sql语句把时间 2010-10-01 09:28:03插入oracle 的date类型字段insert into 表名(字段名) values (to_date('2010-10-01 09:28:03','yyyy-mm-dd hh24:mi:ss'))2、根据date类型字段查询select * from 表名 where to_char(date类型字段,'yyyy-mm-dd') between '2012-03-06' and '2012-03-08'二、delete阅读全文

posted @ 2012-03-08 09:13 Code changes life 阅读(106) | 评论 (0) 编辑

分类: Oracle

Oracle游标进行循环效率比较的更多相关文章

  1. Oracle 游标示例,带异常处理

    Oracle游标示例一则,带异常处理. DECLARE CURSOR c_dl IS SELECT ID, NSRSBH, WSPZXH, ZXYY_DM, HZRQ, SWJG_DM, GXSJ F ...

  2. Oracle游标带参数

    Oracle游标是可以带参数的,而SqlServer的游标就不可以了 create or replace procedure a as cursor b(c_id int)is select * fr ...

  3. Oracle 游标使用(转)

    这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 ; ; dbms_output.put_line(sql) loop dbms_output.put_line( ; ; ; r_te ...

  4. Oracle 游标使用全解(转)

    转自:http://www.cnblogs.com/sc-xx/archive/2011/12/03/2275084.html 这个文档几乎包含了oracle游标使用的方方面面,全部通过了测试 -- ...

  5. Oracle游标动态赋值

    1. oracle游标动态赋值的小例子 -- 实现1:动态给游标赋值 -- 实现2:游标用表的rowtype声明,但数据却只配置表一行的某些字段时,遍历游标时需fetch into到精确字段 CREA ...

  6. dapper支持oracle游标

    dapper支持oracle游标 Dapper是一个轻型的ORM类.它有啥优点.缺点相信很多朋友都知道了,园里也有很多朋友都有相关介绍,这里就不多废话. 如果玩过Oracle都知道,存储过程基本都是通 ...

  7. Oracle游标的使用示例

    此文是使用Oracle游标的几种方式,for...in会自动打开游标,fetch...into需要手动打开游标,游标类似于一个只会往前移动的指针,每次指向数据集中的一行数据,通过游标可以打开数据集,也 ...

  8. Oracle游标介绍

    Oracle游标使用详解: 游标: 用来查询数据库,获取记录集合(结果集)的指针,我们所说的游标通常是指显式游标,因此从现在起没有特别指明的情况,我们所说的游标都是指显式游标.要在程序中使用游标,必须 ...

  9. Oracle游标使用

    Oracle游标介绍: --声明游标 CURSOR cursor_name IS select_statement --For 循环游标 --()定义游标 --()定义游标变量 --()使用for循环 ...

随机推荐

  1. 修正EasyUI的BUG——Form中存在FileBox时的数据载入错误

    使用EasyUI载入服务端返回的数据时经常使用 $('#fm').form('load', row); 实现,既方便又简洁,可是.当Form中包括有FileBox时,代码就会报错,经过跟踪发现.由于E ...

  2. Onvif开发之客户端鉴权获取参数篇

    前面一篇已经介绍了客户端如何发些设备,下面这篇简单介绍下在发现设备后,如何通过ONVIF协议来获取设备的相关参数 ONVIF中不管是客户端还是设备端,最先实现的接口都是关于能力的那个接口,在客户端实现 ...

  3. useradd---创建的新的系统用户

    useradd命令   useradd命令用于Linux中创建的新的系统用户.useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号.使用user ...

  4. 互联网+时代IT管理者的转型

    最近,大众创业万众创新的热潮真是一浪接着一浪,它实际上是一次政府和企事业的自我改革,利用互联网+的思维与技术对生产模式.流通模式与运营模式进行全新的变革,商业的本质是没有变的,仅仅是穿了个马甲来表演. ...

  5. ubuntu终端sudo java提示“command not found”解决办法

    我在ubuntu 12.04里想启动一个java程序,sudo java -jar xxx.jar,但是结果提示sudo:java:command not found. Ubuntu下用sudo运行j ...

  6. worktools-git 工具的使用总结(知识点累积)

    1.用简单列表的方式查看提交记录git log --pretty=online zhangshuli@zhangshuli-MS-:~/myGit$ git log --pretty=oneline ...

  7. Vue Cli 打包之后静态资源路径不对的解决方法

    cli2版本: 将 config/index.js 里的 assetsPublicPath 的值改为 './' . build: { ... assetsPublicPath: './', ... } ...

  8. 【2017百度之星程序设计大赛 - 复赛】Valley Numer

    [链接]http://acm.hdu.edu.cn/showproblem.php?pid=6148 [题意] 在这里写题意 [题解] 先把1..N里面的山峰数字个数算出来->x 然后用N减去这 ...

  9. 腾讯2016实习生面试经验(已经拿到offer)

      忐忑了好几天,今天最终收到深圳总部的电话.允许录用我为2016年实习生,感觉整个天空都放晴了.坐标:武汉大学,给大家说说我的面试经历吧,我投的是软件开发--应用开发方向. 一.校招流程 投递简历- ...

  10. HDU 3131 One…Two…Five! (暴力搜索)

    题目链接:pid=3131">HDU 3131 One-Two-Five! (暴力搜索) 题意:给出一串数字,要求用加,减,乘,除(5/2=2)连接(计算无优先级:5+3*6=8*6= ...