批量bulk insert 原理不明白之处 求解答
来源:互联网 发布:数组未赋值,默认为什么 编辑:程序博客网 时间:2024/06/01 09:54
cursor cur_avg_score is --返回数量有500万行select c.name,course_name, avg(score)from( select student_id,name --6 from a where a.name like '张%' --4) c --5inner join --(select b.score,student_id,course_id,course_namefrom bwhere insert_time >to_date('2012-03-08','YYYY-MM-DD')) don c.student_id=d.student_idgroup by c.name,course_nameorder by c.name,course_nameopen cur_avg_score; --1 loop --3 fetch cur_avg_score bulk collect into --2 l_ary_name, l_ary_course, l_ary_score limit 10000; forall i in 1..l_ary_name.count insert into t_avg_sorce_tmp ( name,course_name,avg_score,create_time,modify_time ) values ( l_ary_name(i), l_ary_course(i), l_ary_score(i), sysdate, sysdate ); commit; exit when cur_avg_score;notfound or cur_avg_score;notfound is null; end loop; close cur_avg_score;
这是个完整的统计存储过程,当然去掉了变量声明
不明白之初
1 OPEN: 游标 有人道 只是解析并生成执行计划,并且记住SCN号
2 fetch :只是完成提取数据这个操作吗? 还是完成执行计划,并提取数据?
3 loop: 循环bulk时 是不是也不能太大减少SQL引撑的切换? 如果500万数据 普通游标要500万次,而这里有limit 10000; 只需要循环500次,那么是否可以说发生500次PLSQL/SQL引撑切换
3.5 loop fetch 联合操作: 如果fetch要完成执行计划是否每次都要执行一遍呢? 比如上面的语句执行计划 1 全表扫描读进内存; 2 过滤数据; 3表连接 4 分组;5排序;6输出结果
还是有人说的只要第一次fetch时候才执行执行计划; 如果这样必定需要一个地方存储结果集 那这个地方是哪里? PGA 的哪个区还是DATABUFFER 的临时表空间?
4 过滤: 是把符合记录的行过滤出来,还是把符合记录的块过滤出来? 如果是行将暂时保存在哪里? 不要说PGA
5 子查询的结果存放在哪里?
6 列的过滤是在哪个步骤? 是SELECT 还是 WHERE条件的时候?
- 批量bulk insert 原理不明白之处 求解答
- bulk insert批量数据导入
- BULK INSERT 实现批量数据导入
- oracle 利用bulk collect into 批量insert
- SQL Server Bulk Insert批量数据导入
- SQL Server Bulk Insert批量数据导入
- Bulk insert 批量导入数据的限制
- SQL Server Bulk Insert 批量数据导入
- elasticsearch之批量提交Bulk
- BULK INSERT
- BULK INSERT
- BULK INSERT
- BULK Insert
- bulk insert
- Bulk INsert
- (总结) SQL Server Bulk Insert 批量数据导入
- (总结) SQL Server Bulk Insert 批量数据导入
- SqlServer中BULK INSERT用法简介,批量插入数据
- [C语言]防止头文件和全局变量重复定义
- Android中ICS4.0源码Launcher启动流程分析【android源码Launcher系列一】
- 报错expected specifier-qualifier-list before ‘uint32_t‘
- Maven与Ant比较
- 【原创】详谈内核三步走Inline Hook实现
- 批量bulk insert 原理不明白之处 求解答
- hdu Save the dwarfs 4314
- API创建对话框
- apache 配置文件 httpd-vhosts.conf 添加一个站点NameVirtualHost *:80
- 黑马程序员--HEML基础
- VC++快捷键
- javascript 中的preventDefault和stopPropagation
- BFS——NYOJ 21 三个水杯
- spring xmlns 配置