`
qcyycom
  • 浏览: 188776 次
社区版块
存档分类
最新评论

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

    博客分类:
  • sql
sql 
阅读更多

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_ 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秒,看样子这种最快
 
3
3
分享到:
评论
2 楼 ajuanlove 2012-06-03  
不经常用这玩意
1 楼 aijuans2 2012-06-02  

相关推荐

    Mysql游标(循环操作)

    通过定义游标、打开游标、获取数据、处理数据、关闭游标这一系列步骤,我们可以有效地对查询结果进行逐行处理。这种技术特别适用于需要对每一行数据进行复杂操作或者需要根据查询结果动态调整处理逻辑的情况。同时,...

    oracle解决游标多维度循环查询效率过低方案

    多维度查询时通常需要建立多个游标循环,查询效率无法得到保障,现在通过游标和substr()函数相结合的方式提高查询效率

    使用游标更新数据库

    使用游标对数据进行更新可以提高数据库的性能和效率。 1. 游标更新的基本概念 游标是数据库中的一种数据结构,它可以用来存储和处理查询结果。在使用游标更新数据库时,需要在声明游标的时候使用 FOR UPDATE 选项...

    oracle 隐式游标,显示游标,游标循环

    此外,还可以利用游标进行循环处理,以实现更复杂的数据操作需求。 #### 二、隐式游标 隐式游标是在执行DML(数据操纵语言)操作或单行`SELECT INTO`语句时由Oracle自动创建的游标。它主要用于处理单行记录。 ###...

    利用游标对不同的数据库进行批量操作数据

    本篇将详细介绍如何利用游标对不同的数据库进行批量操作数据。 首先,游标的基本概念:游标是一个能指向数据集合中的特定位置的指针,它可以移动到集合中的下一行、上一行或首尾行。通过这种方式,我们可以遍历数据...

    matlab开发-图窗口的数据游标

    图窗口是MATLAB中用于展示和交互数据的主要工具,而数据游标则是对图形数据进行精确选取和分析的强大功能。本篇将详细探讨“matlab开发-图窗口的数据游标”以及在多轴数据中的应用。 数据游标(Data Cursor)是...

    不使用游标完成循环功能

    下面将详细介绍一种不使用游标实现循环的方法:基于带有标识列的临时表。 首先,我们创建一个带有标识列(ID)的临时表,这个标识列在插入数据时自动递增,使得我们可以按顺序访问每一行。在创建临时表时,我们通常...

    不使用游标完成循环功能(下)

    ### 不使用游标完成循环功能(下) #### 知识点概述 在SQL Server中,游标虽然提供了处理行集的灵活性,但同时也带来了性能上的负面影响,如延长锁的持续时间、增加内存消耗以及降低CPU效率等。对于那些希望提高...

    存储过程使用游标实现循环

    - 在循环体内插入数据到另一张表`yzdb..jk_jcfrpd`中,每次插入一条新记录。 - 使用`FETCH NEXT FROM favCounts INTO @RID, @DW`继续获取下一条记录。 5. **关闭和释放游标**: - `CLOSE favCounts`: 关闭游标。...

    游标循环读取数据.txt

    该游标用于存储过程中,循环读取数据并插入指定的表中(也可以添加判断插入不同的表)

    使用游标批量更改表的应用

    在数据库管理中,游标是一种非常重要的工具,尤其在需要对数据进行逐条处理或批量修改时。游标允许开发者按需遍历查询结果集,对每一行数据执行特定的操作。在本例中,我们将详细讨论如何使用游标批量更改表中的数据...

    sql 数据库使用游标 随机插入数据

    本文介绍了如何在SQL中使用游标进行数据的循环处理以及如何利用RAND()函数生成随机数,并结合游标实现对数据库表中数据的高效随机更新。这种方法不仅可以有效避免重复数据的插入,还能提高数据处理效率。需要注意的...

    SQL游标原理和使用方法

    1. 分步处理:当需要对查询结果进行逐行处理,如批量更新或插入数据时,游标非常实用。 2. 复杂逻辑:在复杂的业务逻辑中,如迭代计算或条件判断,游标可以帮助处理单行数据。 3. 数据验证:检查数据一致性或进行...

    oracle数据库的游标

    在使用显式游标时,通常通过循环结构来迭代游标中的数据。游标循环有多种实现方式,包括使用loop循环、while循环和for循环。每种循环方式有其特定的场景和优势。例如,for循环会自动打开和关闭游标,并且会自动处理...

    SQL Server遍历表中记录的2种方法(使用表变量和游标)

    总结,遍历SQL Server表中的记录,可以采用表变量配合循环的方式,或者使用游标。表变量方法简洁且对数据的影响可控,但可能需要额外删除已处理的行。游标提供了逐行处理的灵活性,但效率较低,应作为最后的手段。在...

    存储过程游标用于批量的插入数据

    游标主要用于处理那些不适合一次性加载到内存中的大型数据集,或者需要对每一行数据进行单独处理的情况。例如,当需要遍历一个表并对每一行执行特定操作时,使用游标是非常合适的。 #### 三、游标在批量插入数据中...

    当时自己初学SQL时,对游标很难理解,现在编写了一个实例游标循环,到时写SQL循环时方便些

    通过这个具体的例子,我们可以看到如何使用游标来逐行处理查询结果,并且在每次循环中都可以对数据进行特定的操作。这种机制非常适合需要精细控制每一行数据的应用场景,如数据导入导出、批量更新等。然而,需要注意...

    sql 游标详解

    游标提供了对从表或多个表中获取的数据进行遍历的能力,并能对每一行执行复杂的处理。 #### 二、游标的组成部分及其作用 每个游标必须包含以下四个部分: 1. **声明游标** (`DECLARE` 游标):定义游标并为其分配...

    Oracle 游标循环

    2. **`For`循环**:使用`FOR vr IN myCursor LOOP`语句直接遍历游标中的每一行数据。 3. **输出数据**:在循环体内部直接访问每一行数据,并输出相关信息。 4. **自动关闭**:循环结束后,游标会被自动关闭。 #### ...

Global site tag (gtag.js) - Google Analytics