DataPump和EXPORT的性能比较

[复制链接]
查看11 | 回复3 | 2009-7-22 09:30:00 | 显示全部楼层 |阅读模式
DataPump是10g的新功能,据Oracle的文档说明,其性能与原来的EXPORT/IMPORT相比
有很大的提高,但是在一些实际的应用中,有一部分朋友说DataPump反而比原来的EXPORT/
IMPORT慢,这究竟是怎么一回事呢?
从Oracle的说明书里,可以找到DataPump的工作原理,从中我们可以得到一些启发。DataPump
是特别为大型数据库设计的。为了实现处理大量数据时的性能要求,他有一些
原来的EXPORT/IMPORT没有的处理,而在数据量比较小时,这些处理花掉的时间就会
比较明显,从而使总共使用的时间超过EXPORT/IMPORT处理的时间。
A:启动work process等进程
B:创建master表
C:对需要空间的预算
除了以上的原因以外,还有DATAPUMP在导出meta data,也就是,package,procedure,function
等的定义时,没有做特别的优化,如果导出的结果中,这一部分的比例高的话,效果的改变也
不会明显。
-------------------------------------------------------------------------
从说明书里,我们可以了解这些,但是光是知道这些,我们在使用这些工具的时候并不准确
的判断,那一个最适合我们的系统,为了达到这个目的,我们至少应该知道下面这些问题的答案
1、数据量大是指单一对象,例如一个表的数据量大,还是整个导出对象的数据量的总和?
2、如果是单一对象,拿这个对象要多大才有效果?效果有多大?
3、如果是所有的导出对象的总和,那么又是多大?效果如何?
4、如果是两个都有影响,那么又是多大才有效果?
为了回答这些问题,我们通过下面的测试,来测试这两个工具的性能,先比较EXPDP和EXPORT
为了测试的准确,每一个测试都进行3次,下面记录他们的平均值
测试表数量导出文件大小expdpexport
-----------------------------------------
1
100M
40S 20S
1
500M
94S 100S
1
1000M
160S190S
1
2000M
270S 370S
-----------------------------------------
5
250M
60S 55S

5
500M
80S 75S
5
1000M
170S150S
5
2000M
270S320S
-----------------------------------------
10
500M
110S110S
10
1000M
160S195S
10
2000M
300S320S
-----------------------------------------
从上面的测试中我们可以得到以下几点结论。
1、第一要因:单一表的数据量。
如果有数据量达到 G 这个数量级的表,那么DataPump能有好的速度。
2、第二要因:总的数据量
如果总的数据量也很大,DataPump也可以有好的速度,但是如果总的
数据量很大,但是每一张表的数据量都很小的话,估计速度应该不会快。
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
好贴,学习了,多谢lz
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
好帖!mark!
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
好,回去试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行