首页 > 代码库 > Oracle 插入数据效率对比
Oracle 插入数据效率对比
oracle插入数据有多种方式:
将从多个表中查出来的数据插入到临时表中
数据行数 5189597
1.传统方式:直接将数据插入到表中
1 insert into LLB_BASIC_USER_D_TEMP_TEST 2 select t.serv_id, 3 t.phone_id, 4 a1.loc_imei t, 5 region_code, 6 t.county_code, 7 t.payment_mode_cd, 8 t.plan_id, 9 t.productflux,10 t.allflux,11 t.netuse / 1024 / 1024,12 t.lj_sn_roam_flux / 1024 / 1024,13 t.lj_sj_roam_flux / 1024 / 1024,14 a.llb_jcb,15 a.llb_jcb_flux,16 a.llb_bd,17 a.llb_bd_flux,18 a.llb_gn,19 a.llb_gn_flux,20 a.llb_xs,21 a.llb_xs_flux,22 a.llb_xy,23 a.llb_xy_flux24 From llb_basic_temp1 t,25 LLB_BASIC_PACK_ORDER_info a,26 llb_phone_imei a127 where t.phone_id = a.phone_id(+)28 and t.phone_id = a1.accs_nbr(+);
耗时41秒
2.用Hint 提示减少操作时间
1 insert /*+ Append*/ into LLB_BASIC_USER_D_TEMP_TEST 2 select t.serv_id, 3 t.phone_id, 4 a1.loc_imei t, 5 region_code, 6 t.county_code, 7 t.payment_mode_cd, 8 t.plan_id, 9 t.productflux,10 t.allflux,11 t.netuse / 1024 / 1024,12 t.lj_sn_roam_flux / 1024 / 1024,13 t.lj_sj_roam_flux / 1024 / 1024,14 a.llb_jcb,15 a.llb_jcb_flux,16 a.llb_bd,17 a.llb_bd_flux,18 a.llb_gn,19 a.llb_gn_flux,20 a.llb_xs,21 a.llb_xs_flux,22 a.llb_xy,23 a.llb_xy_flux24 From llb_basic_temp1 t,25 LLB_BASIC_PACK_ORDER_info a,26 llb_phone_imei a127 where t.phone_id = a.phone_id(+)28 and t.phone_id = a1.accs_nbr(+);
耗时33秒
3.采用不写日志及使用Hint提示减少数据操作的时间
alter table [table_name] nologging;
alter table [table_name] logging;
耗时32秒
对比一下,使用hint提示是时间最快的方式,但是append会锁表,再插入期间不能使用该表。
Oracle 插入数据效率对比
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。