• 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.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
  • 相关阅读:
    gif&png&jpg&webp
    设计点滴&css效果点滴
    backbone点滴
    js自己总结的小东西(打印出来方便学习)
    nodejs点滴
    js类型
    mongo学亮的分享
    npm package.json中的dependencies和devDependencies的区别
    161130、Dubbo+SpringMVC工程创建详解
    161129、详解5种跨域方式及其原理
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/7762626.html
Copyright © 2020-2023  润新知