上个星期,一个朋友问我,同一个实例上,将某张表从A用户下移动到B用户。 表有1亿+条记录。 表很大。 当时说的方法的是用create table name as select * from B .tbname.

因为记录比较多,也不知道用这种方法的效率怎么样。 之前本本上有2个dump的测试库。 上次一不小心删了一个dump文件。 现在就剩一个。 刚才导入了一下。最大的分区表记录1200w. 数据量没有朋友的那个生产库大。 不过可以测试一下。

这里测试的同一个实例下的。 如果是不同实例间,可以采用数据泵+并行, 这样速度也会很快。 具体参考:

Oracle 插入大量数据

http://blog.csdn.net/tianlesoftware/archive/2009/10/29/4745144.aspx

exp/imp 与 expdp/impdp 对比 及使用中的一些优化事项

http://blog.csdn.net/tianlesoftware/archive/2010/12/23/6093973.aspx

先看表的信息:

SQL> select sum(bytes)/1024/1024/1024 "GB" from dba_extents where SEGMENT_NAME='TAGENTOPRINFO' and owner='ICD';

GB

----------

1.03125

--单张分区表1G

SQL> select count(*) from TAGENTOPRINFO;

COUNT(*)

----------

12172500

-- 表中记录1200w

方法一: create table as select * from

SQL> set timing on

SQL> create table ta as select * from TAGENTOPRINFO;

表已创建。

已用时间:  00: 01: 04.01

SQL> select count(*) from ta;

COUNT(*)

----------

12172500

已用时间:  00: 00: 21.11

SQL>

注意: 新建的表没有原来表的索引和默认值, 只有非空(not null)的约束素条件可以继承过来,其它的约束条件或索引需要重新建立. 如果原始表是分区表,采用这种方式创建的是非分区表。

方法二:insert /*+APPEND */ into tbname select * from

--先创建表结构

SQL> create table tb as select * from TAGENTOPRINFO where 1=0;

表已创建。

已用时间:  00: 00: 00.05

SQL> select count(*) from tb;

COUNT(*)

----------

0

已用时间:  00: 00: 00.00

--insert data

SQL> insert /*+APPEND */ into tb select * from TAGENTOPRINFO;

已创建12172500行。

已用时间:  00: 00: 55.43

SQL> commit;

提交完成。

已用时间:  00: 00: 06.57

在这里再尝试用nologing模式,看看这次需要多长时间:

SQL> alter table tb nologging;

表已更改。

已用时间:  00: 00: 00.14

SQL> insert /*+APPEND */ into tb select * from TAGENTOPRINFO;

已创建12172500行。

已用时间:  00: 01: 13.78

SQL> commit;

提交完成。

已用时间:  00: 00: 06.57

SQL> alter table tb logging;

表已更改。

已用时间:  00: 00: 00.58

注意:

用INSERT /*+ APPEND */ 的方法会对目标表(这里的TB)产生级别为6的独占锁,如果运行此命令时还有对TB的DML操作会排队在它后面。

通过上面2个测试,时间都差不多。我还是在我的本本上测试的。 硬盘的读写能力比服务器硬盘还要差很多。 所以,如果在服务器上进行这种操作,还应该会快一点。

------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(满); DBA2 群:62697977(满)

DBA3 群:62697850   DBA 超级群:63306533;

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

转载于:https://www.cnblogs.com/springside-example/archive/2011/01/24/2529813.html

Oracle 不同用户之间 大量数据转移的方法测试相关推荐

  1. android 打印流程图,Android实现Activities之间进行数据传递的方法

    本文实例讲述了Android实现Activities之间进行数据传递的方法.分享给大家供大家参考.具体分析如下: 首先,先说明一下Activity的启动及关闭: 1. startActivity(In ...

  2. mysql表之间怎么联动_数据库之间的数据联动调整方法、装置及系统的制作方法...

    数据库之间的数据联动调整方法.装置及系统的制作方法 [技术领域] [0001]本发明涉及一种信息处理技术领域,特别是涉及一种数据库之间的数据联动调整方法.装置及系统. [背景技术] [0002]随着信 ...

  3. python跨文件全局变量_Python 进程之间共享数据(全局变量)的方法

    进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...

  4. python进程共享全局变量 时延_Python 进程之间共享数据(全局变量)的方法

    进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...

  5. oracle remap schema,【IMPDP】 实现不同用户之间的数据迁移——REMAP_SCHEMA参数

    众所周知,IMP工具的FROMUSER和TOUSER参数可以实现将一个用户的的数据迁移到另外一个用户.同样的功能在IMPPDP工具中如何得以体现呢?答案就是:使用IMPPDP的REMAP_SCHEMA ...

  6. 数据转移高效方法(oracle)

    数据转移高效方式(从A表到B表) procedure proc_insert_test(p_run_no in varchar2) iscursor c_stg isselect * from 表名 ...

  7. 计算机键盘接入fpga,基于实现FPGA的刀片与主板之间PCI数据交换的方法介绍

    描述 新一代机架式服务器Blade Server(刀片服务器),应用iSCSI协议,通过TCP/IP实现网络存储,利用Intemet,可将SCSI数据包传到地球上的任何地方. 笔者着眼于刀片服务器的内 ...

  8. beego框架下获取用户get\post数据的常见方法

    获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: 第一种:this.Input().Get("key"), ...

  9. 生产环境下,oracle不同用户间的数据迁移。第一部分

    :任务名称:生产环境下schema ELON数据迁移至schema TIAN ######################################## 测试一:测试参数 数据泵数据导出: ex ...

最新文章

  1. 【分析】在线交易开启跨境电商B2B新纪元
  2. python输入姓名输出欢迎_python 3 基础之输入输出
  3. 《从0到1学习Flink》—— 介绍Flink中的Stream Windows
  4. Drupal 使用 Views 模块时,提示 Requires: Ctools (missing) 解决办法
  5. 设计模式练习_设计练习是邪恶的
  6. 计算机网络原理(第三章) 传输层 课后习题
  7. [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
  8. 使用xadmin覆盖Django的admin
  9. linux搭建yum源
  10. WiFi音箱在国内普及需解决的三点
  11. arcpy批量重命名
  12. 【AI】人工智能之深度学习(1)—— 入门
  13. python滑稽代码
  14. 什么是绿色计算(Green Computing)?
  15. unity blend混合
  16. 删除链接到WLW清单文件
  17. PHP 获取网页内容的三种方法
  18. 2018年广东工业大学文远知行杯新生程序设计竞赛 1012 只有我不在的世界β
  19. Android Vendor Test Suite (VTS) 的概念、作用及测试方法
  20. 常见的相似度计算方式

热门文章

  1. 对联想乐Pad的十大期待
  2. java--static关键字
  3. Convert.ToInt32
  4. UML-2-迭代、进化和敏捷
  5. Full_of_Boys训练3总结
  6. Wrong FS: hdfs://xxx/xxx expected: file:///
  7. Mybatis各种模糊查询
  8. php对提交数据的验证
  9. 安装最新Spree出现error:spree_core requires will_paginate (= 3.0.pre2, runtime)
  10. mqtt连接失败_Netty实战:如何让单机下Netty支持百万长连接?