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. ThinkPHP3.1快速入门(3)查询语言

    http://www.thinkphp.cn/info/115.html 介绍 ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作,查询条件可以用于读取.更新和删除等操作,主要涉及到 ...

  2. NAT(NAPT)地址转换过程

    整理自NAT地址转换过程 注:本文实质讲的是NAPT(Network Address Port Translation),即网络端口地址转换.NAPT与动态地址NAT不同,它将内部连接映射到外部网络中 ...

  3. 一周一话题之四(JavaScript、Dom、jQuery全面复习总结<jQuery篇>)

    -->目录导航 一. 初探Jquery 1. 介绍 2. 基础 二. Jquery操作 1. jQuery页面加载 2. 选择器 3. 操作Dom 三. Jquery进阶 1. 隐式迭代与链式编 ...

  4. Eclipse can't install updates

    trying to update eclipse but after downloading updates i always get an error dialog saying: An error ...

  5. Android 自定义组件随着手指自动画圆

    首先自定义一个View子类: package com.example.androidtest0.myView; import android.content.Context; import andro ...

  6. bzoj2705

    一个常用的结论(方法) 只要知道gcd(i,n)=L 的i的个数s,我们就能很轻易得出答案 gcd(i,n)=L gcd(i/L,n/L)=1 不难得到这样的s=与n/L互质的个数=phi(n/L) ...

  7. 卸载系统自带的JDK的脚本并再次安装

    卸载系统自带的JDK的脚本并安装1.6.0.32版本的jdk #!/bin/bash homefile=/usr/local/java cd $homefile homelist=`sudo rpm ...

  8. 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题

    为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头.这作为一个”特征符”或”字节顺序标记(byte-o ...

  9. ListControl常用操作汇总

    本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧.当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅.主要包括以下十三点内容:基本操作.获取选中行的 ...

  10. Oracle 11gR2 create init script

    设置oracle用户变量. [oracle@db01 ~]$ vi /etc/oratab # end line: change db01:/oracle/app/product/11.2.0/db_ ...