社区
基础和管理
帖子详情
从 Sql2000 导2千万数据 到Oracle 11g,有什么快速的方法吗
MarkIII
2011-05-27 11:05:05
我用Sql 的导出,1小时才导了30W条,太慢。
求各位大侠指点。
...全文
230
13
打赏
收藏
从 Sql2000 导2千万数据 到Oracle 11g,有什么快速的方法吗
我用Sql 的导出,1小时才导了30W条,太慢。 求各位大侠指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
-Love-Coding-
2011-06-07
打赏
举报
回复
我是来mark的
阿富888
2011-06-07
打赏
举报
回复
学习一下。
秋雨飘落
2011-06-03
打赏
举报
回复
[Quote=引用 4 楼 zh_666 的回复:]
这个可以用oracle goldengate 可以实现 而且速度非常快 。goldengate支持异构数据库,亚秒的实时复制
[/Quote]
GOLDGATE安装配置不都适合,
建议使用KETTLE,绿色,免安装,速度快。。。。
tlx20093A
2011-06-03
打赏
举报
回复
在oracle使用透明网关
路人呵呵
2011-06-03
打赏
举报
回复
这么高深
gao_fox
2011-05-30
打赏
举报
回复
学习一下,找个机器测一下。
DBAFAN
2011-05-30
打赏
举报
回复
学习中,以后能用到
路人甲cw
2011-05-30
打赏
举报
回复
学习一下,以后可能会用到
hanks_gao
2011-05-29
打赏
举报
回复
Mark!
zh_666
2011-05-28
打赏
举报
回复
这个可以用oracle goldengate 可以实现 而且速度非常快 。goldengate支持异构数据库,亚秒的实时复制
火狐狸
2011-05-27
打赏
举报
回复
挑战极限 Oracle数据库一秒导百万数据
方法一.使用基本的Insert 语句
这种方法是最基本的方法,大多数人一开始都会想到这种方法。但是Insert语句似乎并不适合大批量的操作,是不是这样呢?
本方法中将100万数据分为10个批次,每个批次10万条,每10万条1个事务,分10次导入数据库。
基本语句:Insert Into TableB (Value1) values (‘”+i+”’);
说明:语句中的i是宿主程序中的一个累加变量,用于填充数据库字段中的值。
SQL 2000 耗时:901599
SQL 2008耗时:497638
方法二.使用BULK INSERT语句
这个类的效果,在本实验中可以说是最令人满意的了,它的使用最简便、灵活,速度很快。
“BULK INSERT”语句似乎不是很常用, Aicken听说Oracle中有一种可以将外部文件映射为Oracle临时表,然后直接将临时表中的数据导入Oracle其他表中的方法,这种方法的速度非常令人满意,SQL SERVER的BULK INSERT是不是同样令人满意呢?
基本语句:BULK INSERT TableB FROM 'c:\\sql.txt' WITH (FIELDTERMINATOR = ',',ROWTER /.,mbMINATOR='|',BATCHSIZE = 100000)
说明:“c:\\sql.txt”是一个预先生成的包含100条数据的文件,这些数据以“|”符号分隔,每10万条数据一个事务。
SQL 2000耗时:4009
SQL 2008耗时:10722
方法三.在多线程中使用BULK INSERT
在方法二的基础上,将100万条数据分五个线程,每个线程负责20万条数据,每5万条一个事物,五个线程同时启动,看看这样的效果吧。
SQL 2000耗时:21099
SQL 2008耗时:10997
方法四.使用SqlBulkCopy类
这种方法速度也很快,但是要依赖内存,对于几千万条、多字段的复杂数据,可能在内存方面会有较大的消耗,不过可以使用64位解决方案处理这个问题。
几千万条、多字段的数据的情况一般在一些业务场景中会遇到,比如计算全球消费者某个业务周期消费额时,要先获得主数据库表中的会员消费记录快照,并将快照储存至临时表中,然后供计算程序使用这些数据。并且有些时候消费者的消费数据并不在一台数据库服务器中,而是来自多个国家的多台服务器,这样我们就必须借助内存或外存设备中转这些数据,然后清洗、合并、检测,最后导入专用表供计算程序使用。
基本语句:
using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(conn))
{ sqlBC.BatchSize = 100000;
sqlBC.BulkCopyTimeout = 60;
sqlBC.DestinationTableName = "dbo.TableB";
sqlBC.ColumnMappings.Add("valueA", "Value1");
sqlBC.WriteToServer(dt);
}
说明:
BatchSize = 100000; 指示每10万条一个事务并提交
BulkCopyTimeout = 60; 指示60秒按超时处理
DestinationTableName = "dbo.TableB"; 指示将数据导入TableB表
ColumnMappings.Add("valueA", "Value1"); 指示将内存中valueA字段与TableB中的Value1字段匹配
WriteToServer(dt);写入数据库。其中dt是预先构建好的DataTable,其中包含valueA字段。
SQL 2000耗时:4989
SQL 2008耗时:10412
方法五.在多线程中使用SqlBulkCopy类
基于方法四,将100万条数据分五个线程,每个线程负责20万条数据,每5万条一个事物,五个线程同时启动,看看这样的效果吧。
SQL 2000耗时:7682
SQL 2008耗时:10870
iqlife
2011-05-27
打赏
举报
回复
oracle 这边表NOLOGGING,APPEND
加快速度,批量插入,
平面文件加载,SQL*LOAD,
tangren
2011-05-27
打赏
举报
回复
1、使用DTS
2、从sql使用dblink连接oracle
3、在oracle侧使用透明网关
Oracle
11g
SQL
和PL
SQL
从入门到精通 pdf格式电子书 下载(一)
谢谢大家的支持,我会陆续上传相关电子书 由于体积较大,本书分两卷压缩,请都下载完再解压!
Oracle
11g
SQL
和PL
SQL
从入门到精通 pdf格式电子书 下载(一) http://download.csdn.net/source/3268267
Oracle
11g
SQL
和PL
SQL
从入门到精通 pdf格式电子书 下载(二) http://download.csdn.net/source/3268312 内容简介 本书是专门为
oracle
应用开发人员提供的
sql
和pl/
sql
编程指南。通过学习本书,读者不仅可以掌握
oracle
常用工具
oracle
universal installer、net comfiguration assistant、
sql
developer、
sql
*plus的作用及使用
方法
,而且可以掌握
sql
语句和pl/
sql
的各种基础知识和高级特征(记录类型、集合类型、对象类型、大对象类型)。 除了为读者提供编写
sql
语句和开发pl/
sql
块的
方法
外,本书还为应用开发人员提供了一些常用的pl/
sql
系统包。通过使用这些pl/
sql
系统包,应用开发人员可以开发出功能更强大的
数据
库应用程序。本书不仅适合
sql
和pl/
sql
初学者,也适合于有经验的
oracle
应用开发人员。 前言 第一部分
sql
和pl/
sql
相关工具 第1章 在windows 平台上安装
oracle
database
11g
第2章 配置网络服务名 第3章 使用
sql
database 第4章 使用
sql
*plus 第二部分
sql
第5章
sql
和pl/
sql
综述 第6章 简单查询 第7章
sql
单行函数 第8章 操纵
数据
第9章 复杂查询 第10章 管理常用对象 第三部分 pl/
sql
第11章 pl/
sql
基础 第12章 访问
oracle
第13章 编写控制结构 第14章 使用复合
数据
类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态
sql
第18章 pl/
sql
过程 第19章 pl/
sql
函数 第20章 pl/
sql
包 第21章 触发器 第22章 使用对象类型 第四部分 pl/
sql
系统包 第23章 使用大对象 第24章 读写os文件 第25章 开发多媒体应用 第26章 开发web应用 第27章 dbms_sq动态
sql
第28章 管理统计 第29章 使用
数据
库资源管理器 第30章
数据
加密和解密 第31章 使用调度程序 第32章 使用flashback 第33章 使用重定义联机表 第34章 修正损坏块 第35章 使用日里民挖掘 第36章 使用管道 第37章 使用精细访问控制 第38章 使用精细审计 第39章 使用预警事件 第40章 转换rowid 第41章 其他常用包 习题答案
Oracle
11g
SQL
和PL
SQL
从入门到精通part2 pdf格式电子书 下载(二)
谢谢大家的支持,我会陆续上传相关电子书 由于体积较大,本书分两卷压缩,请都下载完再解压!
Oracle
11g
SQL
和PL
SQL
从入门到精通 pdf格式电子书 下载(一) http://download.csdn.net/source/3268267
Oracle
11g
SQL
和PL
SQL
从入门到精通 pdf格式电子书 下载(二) http://download.csdn.net/source/3268312 内容简介 本书是专门为
oracle
应用开发人员提供的
sql
和pl/
sql
编程指南。通过学习本书,读者不仅可以掌握
oracle
常用工具
oracle
universal installer、net comfiguration assistant、
sql
developer、
sql
*plus的作用及使用
方法
,而且可以掌握
sql
语句和pl/
sql
的各种基础知识和高级特征(记录类型、集合类型、对象类型、大对象类型)。 除了为读者提供编写
sql
语句和开发pl/
sql
块的
方法
外,本书还为应用开发人员提供了一些常用的pl/
sql
系统包。通过使用这些pl/
sql
系统包,应用开发人员可以开发出功能更强大的
数据
库应用程序。本书不仅适合
sql
和pl/
sql
初学者,也适合于有经验的
oracle
应用开发人员。 前言 第一部分
sql
和pl/
sql
相关工具 第1章 在windows 平台上安装
oracle
database
11g
第2章 配置网络服务名 第3章 使用
sql
database 第4章 使用
sql
*plus 第二部分
sql
第5章
sql
和pl/
sql
综述 第6章 简单查询 第7章
sql
单行函数 第8章 操纵
数据
第9章 复杂查询 第10章 管理常用对象 第三部分 pl/
sql
第11章 pl/
sql
基础 第12章 访问
oracle
第13章 编写控制结构 第14章 使用复合
数据
类型 第15章 使用游标 第16章 异常处理 . 第17章 本地动态
sql
第18章 pl/
sql
过程 第19章 pl/
sql
函数 第20章 pl/
sql
包 第21章 触发器 第22章 使用对象类型 第四部分 pl/
sql
系统包 第23章 使用大对象 第24章 读写os文件 第25章 开发多媒体应用 第26章 开发web应用 第27章 dbms_sq动态
sql
第28章 管理统计 第29章 使用
数据
库资源管理器 第30章
数据
加密和解密 第31章 使用调度程序 第32章 使用flashback 第33章 使用重定义联机表 第34章 修正损坏块 第35章 使用日里民挖掘 第36章 使用管道 第37章 使用精细访问控制 第38章 使用精细审计 第39章 使用预警事件 第40章 转换rowid 第41章 其他常用包 习题答案
oracle
_
11g
_R2_client win32 客户端
oracle
_
11g
_R2_client win32 客户端
Oracle
11g
客户端精简版
Oracle
11g
客户端精简版,WIN7上测试通过,绝对能用,安装完成后,请参阅readme.txt文件修改即可.
oracle
11g
官方中文帮助文档 高清完整版
oracle
11g
官方中文帮助文档,压缩文件。
基础和管理
17,380
社区成员
95,117
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章