zoukankan      html  css  js  c++  java
  • 收藏:PL/SQL中使用Bulk Binds来提高性能

    原文:来自CSDNKamus' Oracle World的文章在PL/SQL中使用Bulk Binds对性能的提高

    测试BULK COLLECT的脚本。

    代码:--------------------------------------------------------------------------------
    SQL> SET TIMING ON;
    SQL>
    SQL> DECLARE
      2    TYPE id_type          IS TABLE OF test1.id%TYPE;
      3    TYPE description_type IS TABLE OF test1.description%TYPE;
      4 
      5    t_id           id_type          := id_type();
      6    t_description  description_type := description_type();
      7 
      8    CURSOR c_data IS
      9      SELECT *
     10      FROM   test1;
     11  BEGIN
     12    FOR cur_rec IN c_data LOOP
     13      t_id.extend;
     14      t_description.extend;
     15 
     16      t_id(t_id.last)                   := cur_rec.id;
     17      t_description(t_description.last) := cur_rec.description;
     18    END LOOP;
     19  END;
     20  /

    PL/SQL procedure successfully completed

    Executed in 2.974 seconds

    SQL>
    SQL> DECLARE
      2    TYPE id_type          IS TABLE OF test1.id%TYPE;
      3    TYPE description_type IS TABLE OF test1.description%TYPE;
      4 
      5    t_id           id_type;
      6    t_description  description_type;
      7  BEGIN
      8    SELECT id, description
      9    BULK COLLECT INTO t_id, t_description FROM test1;
     10  END;
     11  /

    PL/SQL procedure successfully completed

    Executed in 0.371 seconds

    SQL>--------------------------------------------------------------------------------

    结论:当我们需要将大量的检索结果放入一个collection的时候,使用bulking将比直接使用cursor循环有效的多。

  • 相关阅读:
    有一群志同道合的程序员朋友是怎样的体验?
    hdu1387 模拟队列
    hau 1870 愚人节的礼物(栈)
    hdu1509 优先队列
    hdu1837 看病要排队(优先队列)
    hdu 1237 简单计算器(栈处理)
    hdu1022 模拟栈
    又一个错误的认知!
    jmeter+ant+jenkins 接口自动化测试持续集成(送源码)
    P1197 [JSOI2008]星球大战
  • 原文地址:https://www.cnblogs.com/flyingfish/p/717333.html
Copyright © 2011-2022 走看看