Oracle 不同用户之间 大量数据转移的方法测试
上个星期,一个朋友问我,同一个实例上,将某张表从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 不同用户之间 大量数据转移的方法测试相关推荐
- android 打印流程图,Android实现Activities之间进行数据传递的方法
本文实例讲述了Android实现Activities之间进行数据传递的方法.分享给大家供大家参考.具体分析如下: 首先,先说明一下Activity的启动及关闭: 1. startActivity(In ...
- mysql表之间怎么联动_数据库之间的数据联动调整方法、装置及系统的制作方法...
数据库之间的数据联动调整方法.装置及系统的制作方法 [技术领域] [0001]本发明涉及一种信息处理技术领域,特别是涉及一种数据库之间的数据联动调整方法.装置及系统. [背景技术] [0002]随着信 ...
- python跨文件全局变量_Python 进程之间共享数据(全局变量)的方法
进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...
- python进程共享全局变量 时延_Python 进程之间共享数据(全局变量)的方法
进程之间共享数据(数值型): import multiprocessing def func(num): num.value=10.78 #子进程改变数值的值,主进程跟着改变 if __name__= ...
- oracle remap schema,【IMPDP】 实现不同用户之间的数据迁移——REMAP_SCHEMA参数
众所周知,IMP工具的FROMUSER和TOUSER参数可以实现将一个用户的的数据迁移到另外一个用户.同样的功能在IMPPDP工具中如何得以体现呢?答案就是:使用IMPPDP的REMAP_SCHEMA ...
- 数据转移高效方法(oracle)
数据转移高效方式(从A表到B表) procedure proc_insert_test(p_run_no in varchar2) iscursor c_stg isselect * from 表名 ...
- 计算机键盘接入fpga,基于实现FPGA的刀片与主板之间PCI数据交换的方法介绍
描述 新一代机架式服务器Blade Server(刀片服务器),应用iSCSI协议,通过TCP/IP实现网络存储,利用Intemet,可将SCSI数据包传到地球上的任何地方. 笔者着眼于刀片服务器的内 ...
- beego框架下获取用户get\post数据的常见方法
获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: 第一种:this.Input().Get("key"), ...
- 生产环境下,oracle不同用户间的数据迁移。第一部分
:任务名称:生产环境下schema ELON数据迁移至schema TIAN ######################################## 测试一:测试参数 数据泵数据导出: ex ...
最新文章
- 【分析】在线交易开启跨境电商B2B新纪元
- python输入姓名输出欢迎_python 3 基础之输入输出
- 《从0到1学习Flink》—— 介绍Flink中的Stream Windows
- Drupal 使用 Views 模块时,提示 Requires: Ctools (missing) 解决办法
- 设计模式练习_设计练习是邪恶的
- 计算机网络原理(第三章) 传输层 课后习题
- [C# 网络编程系列]专题九:实现类似QQ的即时通信程序
- 使用xadmin覆盖Django的admin
- linux搭建yum源
- WiFi音箱在国内普及需解决的三点
- arcpy批量重命名
- 【AI】人工智能之深度学习(1)—— 入门
- python滑稽代码
- 什么是绿色计算(Green Computing)?
- unity blend混合
- 删除链接到WLW清单文件
- PHP 获取网页内容的三种方法
- 2018年广东工业大学文远知行杯新生程序设计竞赛 1012 只有我不在的世界β
- Android Vendor Test Suite (VTS) 的概念、作用及测试方法
- 常见的相似度计算方式
热门文章
- 对联想乐Pad的十大期待
- java--static关键字
- Convert.ToInt32
- UML-2-迭代、进化和敏捷
- Full_of_Boys训练3总结
- Wrong FS: hdfs://xxx/xxx expected: file:///
- Mybatis各种模糊查询
- php对提交数据的验证
- 安装最新Spree出现error:spree_core requires will_paginate (= 3.0.pre2, runtime)
- mqtt连接失败_Netty实战:如何让单机下Netty支持百万长连接?