Oracle 插入数据效率对比
2024-08-26 00:48:29
oracle插入数据有多种方式:
将从多个表中查出来的数据插入到临时表中
数据行数 5189597
1.传统方式:直接将数据插入到表中
insert into LLB_BASIC_USER_D_TEMP_TEST
select t.serv_id,
t.phone_id,
a1.loc_imei t,
region_code,
t.county_code,
t.payment_mode_cd,
t.plan_id,
t.productflux,
t.allflux,
t.netuse / 1024 / 1024,
t.lj_sn_roam_flux / 1024 / 1024,
t.lj_sj_roam_flux / 1024 / 1024,
a.llb_jcb,
a.llb_jcb_flux,
a.llb_bd,
a.llb_bd_flux,
a.llb_gn,
a.llb_gn_flux,
a.llb_xs,
a.llb_xs_flux,
a.llb_xy,
a.llb_xy_flux
From llb_basic_temp1 t,
LLB_BASIC_PACK_ORDER_info a,
llb_phone_imei a1
where t.phone_id = a.phone_id(+)
and t.phone_id = a1.accs_nbr(+);
耗时41秒
2.用Hint 提示减少操作时间
insert /*+ Append*/ into LLB_BASIC_USER_D_TEMP_TEST
select t.serv_id,
t.phone_id,
a1.loc_imei t,
region_code,
t.county_code,
t.payment_mode_cd,
t.plan_id,
t.productflux,
t.allflux,
t.netuse / 1024 / 1024,
t.lj_sn_roam_flux / 1024 / 1024,
t.lj_sj_roam_flux / 1024 / 1024,
a.llb_jcb,
a.llb_jcb_flux,
a.llb_bd,
a.llb_bd_flux,
a.llb_gn,
a.llb_gn_flux,
a.llb_xs,
a.llb_xs_flux,
a.llb_xy,
a.llb_xy_flux
From llb_basic_temp1 t,
LLB_BASIC_PACK_ORDER_info a,
llb_phone_imei a1
where t.phone_id = a.phone_id(+)
and t.phone_id = a1.accs_nbr(+);
耗时33秒
3.采用不写日志及使用Hint提示减少数据操作的时间
alter table [table_name] nologging;
alter table [table_name] logging;
耗时32秒
对比一下,使用hint提示是时间最快的方式,但是append会锁表,再插入期间不能使用该表。
最新文章
- jdbc-批量插入、批量删除、批量更新
- EBS中OPM成本更新处理流程及对应的表结构、SLA表
- db2设置共享内存
- WebSocket 是什么原理?为什么可以实现持久连接
- OS中常用的调度算法总结 (转)
- ios高版本SDK在低版本真机调试
- 算法 python实现(一) 基本常识
- HDU 3478 Play with Chain (Splay树)
- chapter 12_2 保存无环的table
- Vector2.Angle 的 bug
- Java之【线程通信】--标志位练习
- Vue深度学习(2)
- webapi发布到windows 2012的iis8里 出错
- Maven package 报错解决记录以及编译scala的pom.xml
- renren-security旧版本 分模块 的模块之间关系浅析
- android填满手机内存的方法
- 省市区三级联动picker-view-微信小程序
- py-faster-rcnn代码阅读2-config.py
- mysql 增加字段脚本,以及删除主键约束的脚本,存储过程
- graphcool-framework 一个基于graphql的后端开发框架