当前位置: 首页 > news >正文

pl/sql中的forall简单测试(r5笔记第63天)

之前写过一篇bulk collect的博文,只是对于bulk collect做了简单的实例。http://blog.itpub.net/23718752/viewspace-1289696/0?wx_fmt=png而forall却是相反,是提供一次上下文切换,会在forall的过程中进行数据的包装处理。一次发送给sql执行器去处理,大大减少了上下文切换时间。0?wx_fmt=png对于此,可以想象,如果cursor中的结果集很庞大,就很可能进行大量的上下文切换,导致执行速度骤降。n1@TEST11G> create unique index inx_test_data_pk on test_data(object_id);Index created.Elapsed: 00:00:00.48[ora11g@oel1 plsql]$ cat a.sqlcreate or replace procedure test_proc as cursor test_cur is select *from test_data; i number;begin i:=1; for cur in test_cur loop update test_data set object_name=cur.object_namewhere object_id=cur.object_id; dbms_output.put_line('this is a test'); i:=i+1; end loop;end;/Elapsed: 00:00:13.73[ora11g@oel1 plsql]$ cat b.sqlcreate or replace procedure test_proc as cursor test_cur is select *from test_data; type rec_type is table of test_cur%rowtype index by binary_integer; recs rec_type;begin open test_cur; fetch test_cur bulk collect into recs; close test_cur; forall i in 1..recs.COUNT update test_data set object_name=recs(i).object_namewhere object_id=recs(i).object_id; dbms_output.put_line('this is a test');end;/n1@TEST11G> exec test_proc;this is a testPL/SQL procedure successfully completed.Elapsed: 00:00:01.67

相关文章:

  • 一次ORA-00600问题的排查和分析(上)(r5笔记第64天)
  • 一次ORA-00600问题的排查和分析(下)(r5笔记第65天)
  • 毕业设计的小故事(r5笔记第67天)
  • 重启数据库的一场闹剧(r5笔记第68天)
  • 关于aio的设置的讨论(r5笔记第69天)
  • 一条sql语句的改进探索(r5笔记第70天)
  • 海量数据迁移之传输表空间(一) (r5笔记第71天)
  • 数据刷新中的并行改进(r5笔记第72天)
  • 一条sql语句的建议调优分析(r5笔记第73天)
  • 泰国之旅随感(r1笔记第70天)
  • 曼谷周末游(r5笔记第74天)
  • 使用flashback query巧妙抽取指定数据(r5笔记第75天)
  • 数据刷新中的并行改进(二) (r5笔记第76天)
  • 养鱼生活的一段终结(r5笔记第77天)
  • oracle监控工具ignite使用图解(r5笔记第78天)
  • Angular数据绑定机制
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Docker: 容器互访的三种方式
  • JS笔记四:作用域、变量(函数)提升
  • Material Design
  • Python学习笔记 字符串拼接
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 给新手的新浪微博 SDK 集成教程【一】
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 我看到的前端
  • 无服务器化是企业 IT 架构的未来吗?
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​io --- 处理流的核心工具​
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • (1)(1.13) SiK无线电高级配置(五)
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (3)STL算法之搜索
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (转)LINQ之路
  • (转载)PyTorch代码规范最佳实践和样式指南
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net(C#)中String.Format如何使用
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET委托:一个关于C#的睡前故事
  • .net最好用的JSON类Newtonsoft.Json获取多级数据SelectToken
  • @staticmethod和@classmethod的作用与区别
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [BZOJ 3282] Tree 【LCT】
  • [HackMyVM]靶场 VivifyTech
  • [HDU 3555] Bomb [数位DP]