sqlldr和oracle_datapump性能比较(r2笔记35天)

针对之前在生产环境中使用sql*loader的性能问题,最近一直在想使用外部表的oracle_datapump来替代它。 昨天下午做了大量数据的测试,比较了这两种方案。最后发现在一定的限定条件下,从很多细节来看 oracle_datapump要更胜一筹。 首先使用sql*loader对于clob,blob的数据相比普通表的处理要一些额外的工作,但是这些限制或者额外工作再oracle_datapump中就可以很方便的使用,oracle_datapump支持的数据类型要更丰富。 在生产环境中,迁移数据的时候,只是对于foreign key做了disable的操作,对于其他的constraint都做了保留,没有任何其他的操作,所以使用sql*loader 的direct选项就有很多的限制和无法实现的苦衷。在表级都设置了nologging。 --》数据抽取 以下是使用sql*loader和oracle_datapump的一些性能比较。数据量在120-150G左右。 使用sql*loader的时候因为有2张表含有clob字段,所以就先没有处理,以此来对比oracle_datapump的速度。 可以看到sqlldr的速度做数据抽取大概耗费了14分钟,而且不包括2张含有clob的表,生成的dump文件有150G oracle_datapump的速度要更快一些。只耗费了大概3分钟左右,生成的dump文件要更加精简。 当然了sqlldr可以使用客户端来抽取数据,而oracle_datapump只能基于服务端,灵活性上sqlldr要好一些。

extract start time

extract end time

Duration

Dump_generated

sqlldr(exclude 2 tables)_68 tables

Tue Jul 15 13:28:15 ICT 2014

Tue Jul 15 13:42:32 ICT 2014

14 mins

150G

EXT_DATAPUMP 70 tables

Tue Jul 15 14:03:11 ICT 2014

Tue Jul 15 14:06:20 ICT 2014

3 mins

59G

--》数据加载 数据抽取的速度其实不是关键,很多工作可以在升级之前完成,对于系统的影响倒不是很重要,关键在于数据的加载速度。 可以看到采用sqlldr加载数据的时候,启用了150个并行线程,sqlldr开启了并行。耗费了大约80分钟,产生的日志数据量也不少有,230G左右。 而oracle_datapump的表现在这方便确实更胜一筹,启用了4个session,每个session启用并行度为8来做数据的加载,加载速度要快一倍以上。而且产生的日志数据量也少了将近一半。

data loading start time

data loading end time

Duration

archive_logs_generated

sqlldr(exclude 2 tables)_68 tables

Tue Jul 15 14:24:24 ICT 2014

Tue Jul 15 15:44:04 ICT 2014

80 mins

230G

EXT_DATAPUMP 70 tables

Tue Jul 15 17:06:51 ICT 2014

Tue Jul 15 17:50:04 ICT 2014

44 mins

139G

--》数据校验 在数据校验方面,sqlldr就没有任何可行的方法来比较冗余数据了,在这方面,oracle_datapump可以根据生成的dump文件创建外部表,不耗费额外的表存储空间,在这个基础上,直接可以对外部表和目标表进行比较。在数据加载之前找到可能出现的潜在问题。 --》数据纠错 在数据纠错方面,sqlldr提供了完整的处理机制,如果数据不符合要求被reject,可以生成对应的错误文件,里面包含所有被拒的数据,可以再次使用sqlldr来加载。 但是对于oracle_datapump来说,只能到这里了。不过在数据库层面还有其他可行的方式,比如采用error log就可以得到出错的数据进行排错。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2014-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Android开发者必知的开发资源

随着Android平台市场份额的持续猛增 ,越来越多的开发者开始投入Android应用程序的开发大潮。如果您是一位2016年刚刚入行的Android开发新兵,恭...

1532
来自专栏康怀帅的专栏

Mac OS X 背后的故事(下)

Mac OS X 背后的故事(九)半导体的丰收 半导体的丰收(上)   在美国宾夕法尼亚州的东部,有一个风景秀美的城市叫费城。在这个城市诞生了一系列改变世界的奇...

4477
来自专栏安恒网络空间安全讲武堂

从零开始的CTF学习过程

在上大学之前,我是从来没有学习过任何编程知识的。不过我喜欢计算机,甚是喜欢这折腾的过程,从刚开始的学习使用、玩游戏、找外挂辅助,到后来的维修计算机。

2072
来自专栏牛客网

成都-阿里Java研发工程师面经

11号去成都参加阿里面试,网上预约的3点,两点半就到了,刚签完到马上就喊去面试。经历了一面二面和HR面。 一面 1.介绍一下你的项目,说一下哪个项目印象最深 ...

4028
来自专栏Jerry的SAP技术分享

SAP S4CRM和C4C的技术比较

如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4...

4337
来自专栏SDNLAB

云数据中心网络虚拟化——大二层技术巡礼之控制平面多虚一

控制平面多虚一,指的是将两台或者多台设备的资源(包括操作系统、转发实例、转发表、端口等)进行整合,对外表现为一台逻辑设备,以Cisco VSS,Huawei C...

4005
来自专栏黑泽君的专栏

Linux的桌面环境gnome、kde、xfce、lxde 等等使用比较

  如果不是加入了图形界面,微软的Windows系列操作系统不会成功地占领计算机桌面这块高地。这种人机交换的图形化界面,使得界面更加直观、简易、而且更人性化,同...

2581
来自专栏我的博客

Lucenu和Sphinx介绍

一、Lucene介绍 1、简介 Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查...

3596
来自专栏芋道源码1024

慢讯!Sharding-Sphere 正式进入 Apache 孵化器

美国时间2018年11月10日,开源分布式数据库中间件生态圈Sharding-Sphere正式进入Apache基金会孵化器。

1533
来自专栏诸葛青云的专栏

5天赚十亿!纯C/C++打造“西虹市首富”

有人就说了,小编你挣着卖白菜的钱就不要操着卖白粉的心了好吗?银行存款有多少心里没点数吗?

1363

扫码关注云+社区