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会锁表,再插入期间不能使用该表。

Oracle 插入数据效率对比的更多相关文章

  1. android批量插入数据效率对比

    对比在android中批量插入数据的3中方式对比(各插入1W条数据所花费的时间): 1. 一个一个插入 /** * 向表中插入数据 * * @param openHelper * @param app ...

  2. ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录

    TP+ORACLE插入数据BUG修复以及获取自增Id支持getLastInsID方法 这些天在做Api接口时候,发现用TP操作Oracle数据库,发现查询修改删除都能执行, 但一旦执行插入操作老是报错 ...

  3. JDBC向oracle插入数据

    public static void main(String[] args) throws SQLException { 2 3 4 String driver="oracle.jdbc.d ...

  4. oracle插入数据的时候报错:ORA-00928: 缺失 SELECT 关键字

    比如:插入数据的时候是这样的insert into a value('哈哈'); 报的是这样的错误:ORA-00928: 缺失 SELECT 关键字 其实就是value少了一个s,在oracle中,插 ...

  5. java批量向oracle插入数据

    由于项目需要,需要将一个6M的txt中的数据插入到oracle数据表中.txt中的数据是每行一个词.经过统计,词总数是505040.为了看起来方便,我将我的所有方法写在类入口中,数据库的信息我会用te ...

  6. oracle插入数据

    插入数据 insert into comm_error_code_def (ID, ERR_MESSAGE, ERR_CODE, ERR_DESC, NAME, MISC_DESC, STATUS, ...

  7. oracle插入数据问题

    这个是我的表结构:desc T_STUDENT;Name         Type         Nullable Default Comments ------------ ----------- ...

  8. Oracle 逐条和批量插入数据方式对比

    创建测试表 create table base_users ( userid         varchar2(16), username  varchar2(32), passwd      var ...

  9. JDBC批量插入数据效率分析

    对于需要批量插入数据库操作JDBC有多重方式,本利从三个角度对Statement和PreparedStatement两种执行方式进行分析,总结较优的方案. 当前实现由如下条件: 执行数据库:Mysql ...

随机推荐

  1. 李洪强iOS开发Swift篇—08_函数(2)

    李洪强iOS开发Swift篇—08_函数(2) 一.函数类型 函数类型也是数据类型的一种,它由形参类型和返回值类型组成,格式是 (形参类型列表) -> 返回值类型 1 func sum(num1 ...

  2. CRC算法及C实现

    一.CRC算法原理   CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校 验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数 ...

  3. Android Density(密度)

    1.  什么是density 引用 1) density density表示每英寸有多少个显示点(逻辑值),它的单位是dpi:dot per inch,通常屏幕大时,density就大,屏幕小时,de ...

  4. queue与topic的技术特点对比

    1    queue与topic的技术特点对比 Topic Queue 概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对点 有无状态 to ...

  5. ICMP 实现

    以下代码取自 kernel- . [数据结构] struct icmp_control { void (*handler)(struct sk_buff *skb); //icmp处理函数,根据icm ...

  6. android基本的数据库创建和使用

    android的四大组件中就有Content Provider,对其他应用,提供自己的数据,所以,一般情况下,android应用不需要提供content provider. 1.  简单的数据库表单字 ...

  7. 计算几何(容斥原理,圆交):HDU 5120 Intersection

    Matt is a big fan of logo design. Recently he falls in love with logo made up by rings. The followin ...

  8. HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))

    Car Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  9. Ignatius and the Princess III

    Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  10. python 正则表达式 贪婪模式的简介和匹配时的几种模式

    看到一篇文章,关于python正则的,http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html 贪婪模式与非贪婪模式: 正则表达式通常用于 ...