oracle中bulk,Oracle数据库之FORALL与BULK COLLECT语句
1 PL/SQL块的执行过程
当PL/SQL运行时引擎处理一块代码时,它使用PL/SQL引擎来执行过程化的代码,而将SQL语句发送给SQL引擎来执行;
SQL引擎执行完毕后,将结果再返回给PL/SQL引擎。这种在PL/SQL引擎和SQL引擎之间的交互,称为上下文交换(context switch)。
每发生一次交换,就会带来一定的额外开销。
2 FORALL和BULK COLLECT特点
这两个语句在PL/SQL内部进行一种数组处理,BULK COLLECT提供对数据的高速检索,FORALL可大大改进INSERT、UPDATE和DELETE操作的性能。Oracle数据库使用这些语句大大减少了PL/SQL与SQL语句执行引擎的环境切换次数,从而使其性能有了显著提高。
FORALL,用于增强PL/SQL引擎到SQL引擎的交换。
BULK COLLECT,用于增强SQL引擎到PL/SQL引擎的交换。
如果你要插入5000条数据,一般情况下,在pl/sql中用for循环,循环插入5000次,而用forall一次就可以插入5000条,提高了性能和速度。
3 FORALL介绍
使用FORALL,可以将多个DML批量发送给SQL引擎来执行,最大限度地减少上下文交互所带来的开销。
3.1 FORALL语法
FORALL index_name IN
{ lower_bound .. upper_bound
| INDICES OF collection_name [ BETWEEN lower_bound AND upper_bound ]
| VALUES OF index_collection
oracle中bulk,Oracle数据库之FORALL与BULK COLLECT语句相关推荐
- Oracle中如何查找未使用绑定变量的SQL语句?
Oracle中如何查找未使用绑定变量的SQL语句? 利用V$SQL 视图的 FORCE_MATCHING_SIGNATURE 字段可以识别可能从绑定变量或 CURSOR_SHARING 获益的 SQL ...
- oracle中实例与数据库的概念解释
很容易混淆,这就是"实例 "(instance)和"数据库 "(database).作为Oracle术语,这两个词的定义如下: q 数据库 (database) ...
- oracle中命令,oracle中常用命令汇总(一)
1.如何查看Oracle的数据库sid名称? 如果用sysdba身份登录.执行以下命令: SQL> conn / as sysdba; 已连接. SQL> select name from ...
- oracle中totimestamp,oracle中to_timestamp和to_date什么区别
date类型是Oracle常用的日期型变量,时间间隔是秒.两个日期型相减得到是两个时间的间隔,注意单位是"天". timestamp是DATE类型的扩展,可以精确到小数秒(frac ...
- oracle中nextday,Oracle日期函数 next_day
Oracle日期函数 next_day 在Oracle是提供了next_day求指定日期的下一个日期. 语法 : next_day( date, weekday ) date is used to f ...
- oracle中pdb,Oracle 12C新特性-CDB和PDB 详解
最近看到好多人都在尝试Oracle中的12C新特性-容器数据库,今年3月Orcle推出了Release2版本,可以算是一个稳定版本了.下午着手尝试了一下,还是蛮不错得 1.前言 CDB与PDB是Ora ...
- oracle中primary,oracle中如何 Primary key自增
oracle中如何 Priamry key自增 摸索了一晚上,终于实现了key的自增,现在将实现的过程总结如下: (1)首先创建一个表:这里是我创建的一个User表,包括id,user_name,pa ...
- oracle中submit,Oracle中DBMS_JOB.SUBMIT的用法说明
Oracle中DBMS_JOB.SUBMIT的用法说明 用法DEMO: DBMS_JOB.SUBMIT(:jobno,//job号 'your_procedure;',//要执行的过程 trunc(s ...
- oracle中isnumeric,Oracle 中 isnumeric 的三种实现
使用过 asp 的应该对 isnumeric 函数不会陌生,这是一个常用的判断入参是否为数字的函数.在 oracle 中没有现成的判断是否为数字函数,下面就用三种方法来实现: 1. 利用 to_num ...
最新文章
- 这样规范写代码,同事直呼“666”
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
- ElementUIz中el-checkbox-group多选框组的使用,怎样设置一组选项与获取所选值
- 时间类(时间戳的各种转换成)
- mysqladmin 设置用户名初始密码报错you need the SUPER privilege for this operation
- 2020-06-05 原始套接字/AF_PACKET链路层访问
- 虚函数和虚析构函数的实现原理--虚函数表
- flex项目学习包括什么内容
- Confluence 6 安全相关问题提交链接
- synchronized的实现原理用法详解
- win10怎样获得计算机管理员权限,详解Win10获取管理员权限的具体方法
- STM32F407 CAN Controller介绍(二)
- apicloud 获取手机虚拟键盘高度
- HTML常用meta小结
- git commit message——git提交日志规范备忘
- java-opencv文档
- CSS中padding属性的参数顺序
- 互联网热点:“双十一”节奏提前,猿辅导、掌门教育积极转型素质教育
- 大数据揭秘成都“堵车地图” 拥挤程度全国第9
- 2023最新红色风格电脑手机数码商城系统网站源码+仿华为商城UI开发
热门文章
- vue 得到枚举个数_vue项目中枚举值统一维护管理
- vue+node.js前后端交互中的token令牌验证
- Python选修课,期末大作业Pygame小游戏<Sharpshooter>
- Mac 升级后git pull 报错fatal: Authentication failed for 解决办法
- 盘点那些影响人类发展的伟大式子(持续更新)
- 【Markdown基础教程】段落分段换行详解
- JavaScript奇淫技巧:压缩并加密图片
- 植物表型组学研究平台建设及技术应用
- VMware和Virtual Box虚拟机的区别
- MySQL密码长不为6_mysql密码规则配置-配置为简单密码123456