[转]
EXP常规模式、EXP直接路径模式和EXPDP三种方式导出的性能对比
1.首先是EXP的常规路径导出:
exp zhejiang/zhejiang file=/data1/zj_regular.dmp buffer=20480000
常规EXP导出方式执行了1小时24分钟。
2.直接路径导出方式:
exp zhejiang/zhejiang file=/data1/zj_direct.dmp buffer=20480000
recordlength=65535 direct=y
直接路径导入用时18分钟,比常规路径导出速度有一个明显的提高。
3.数据泵的导出速度。
expdp zhejiang/zhejiang dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang
数据泵的导出时间仅用了14分钟,比直接路径导入方式还快了20%多。而且观察三个导出文件的大小可以发现,导出速度越快对应的文件也越小,其中数据泵的导出方式得到的文件要比EXP方式小将近1.5G。
IMP和IMPDP导入性能对比
1.IMP的导入速度:
imp zhejiang/zhejiang file=/data1/zj_regular.dmp full=y buffer=20480000 log=/data1/zj_regular.log
IMP导入花费了3小时17分钟,
2.IMPdp的导入速度:
impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log
数据泵的导入操作居然花了3个小时8分钟的时间,和IMP的导入速度十分接近,看来并非所有情况下都像Oracle描述的那样,数据泵的导入比普通导入效率有大幅度的提高。
上面一篇文章的测试中发现IMPDP的导入速度和IMP导入速度相差无几。而Oracle在介绍数据泵的时候,提到IMPDP的导入速度最高是IMP的10倍。不过好在IMPDP还是可以优化调整的,那就是通过设置PARALLEL来提高IMPDP的并行度。
首先还是看一下CPU的数量:
SQL> show parameter cpu
由于数据库服务器的CPU个数为2,下面尝试设置PARALLEL为2来进行导入
impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log parallel=2
采用并行度为2的导入方式,发现速度果然提高了很多。并行度为1的导入速度是3小时8分钟,而现在用了不到2个半小时。
由于并行度设置不应该超过CPU数的2倍,因此尝试平行度3和4的导入,导入时间和并行度2十分接近。看来已经无法再使用通过提高并行度的方法来提高性能了。
1.先看直接导出的性能:
$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang.dp
整个导出操作大概用了14分半,
2.尝试使用并行度2进行导出,这时仍然设置一个导出的数据文件:
$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p2_1file.dp parallel=2
整个导入过程不到14分钟,不过这个性能的提升实在不是很明显。不过这是有原因的,由于设置了并行度,两个进程在同时执行导出操作,但是二者要将导出的数据写入同一个数据文件中,因此必然会导致资源的争用
3.仍然使用并行度2,但是同时设置两个数据文件再次检查导出性能:
$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p2_2file1.dp,zhejiang_p2_2file2.dp parallel=2
这次导出仅仅用了10分半,导出的效率大大的提高。
4.测试一下并行度4,分别导出到4个数据文件中:
用了9分钟整导出完成,设置成并行度4仍然可以获得一定的性能提升,但是并不明显了,这主要是由于整个性能的瓶颈已经不是单个进程的处理能力,多半性能的瓶颈已经变成了磁盘IO瓶颈,此时单单靠增加并行度已经无法明显提升性能了。
分享到:
相关推荐
为了解决这个问题,本文介绍了一种通过使用Oracle提供的两个工具——`exp` 和 `expdp` 来导出大型数据库的有效方法。 #### 二、解决方案概述 针对生产环境中实例数据过大而导致的导出不便问题,可以采用以下两步走...
- **expdp/impdp**:得益于直接路径模式和并行处理的支持,性能表现更佳,尤其是在大规模数据处理场景下优势明显。 #### 四、使用中的一些优化事项 **1. exp/imp 的优化** - **合理选择模式**:根据实际情况选择...
在Oracle环境中,"exp.exe"是Oracle Data Pump Export工具的一部分,用于将数据库对象(如表、索引、存储过程等)的数据和结构导出到一个或多个DMP(Data Pump Export)文件中。DMP文件是一种二进制格式,便于存储和...
2. EXP 提供了三种模式: a. 用户模式:导出特定用户的全部对象和对象中的数据。 b. 表模式:导出用户的所有表或指定表。 c. 整个数据库:导出数据库中的所有对象。 3. 交互式命令行方式使用示例: - 输入 `$...
#### 三、导出操作(expdp) ##### 1. 查看表空间 在进行导出之前,我们首先需要查看当前数据库中的表空间信息。 - 示例命令:`select tablespace_name, file_name from dba_data_files;` ##### 2. 创建表空间 ...
Oracle 11g R2 中 exp 无法导出空表的解决方法有四种:insert 一行再 rollback、设置 deferred_segment_creation 参数、使用 expdp 命令、使用 alter 语句。每种方法都有其优缺,选择哪种方法取决于具体情况。
2. **Data Pump导出与导入**:Oracle Data Pump是Oracle 10g及后续版本引入的一种高性能数据传输机制,它比传统的EXP/IMP(Export/Import)工具更为高效。Data Pump导出(expdp)和导入(impdp)使用并行处理来提高...
impdp 和 expdp 命令是 Oracle 数据库备份的两个主要工具,它们都是基于服务器的数据导出导入工具,提供了一种高效、可靠的数据传输方式。impdp 和 expdp 命令可以实现 Oracle 数据库之间的数据传输,例如从 Oracle ...
除了常规导出外,还可以使用`exp`的直接路径方式导出,这种方式可以显著提高导出速度,尤其是在导出大量数据时。 - **直接路径导出**:使用`direct=y`参数开启直接路径导出功能。 - **限制**:需要注意的是,直接...
在 Oracle 10g 及其以上版本中,expdp 和 impdp 命令取代了传统的 exp 和 imp 命令,提供了更多的功能和选项。expdp 命令可以将数据导出到文件中,impdp 命令可以将数据从文件中导入到数据库中。 使用 imp/exp 命令...
"exp.exe"就是Oracle提供的一种用于导出数据库的命令行工具,它是Oracle Data Pump工具的一部分,名为Export。 Oracle Data Pump(也称为 EXPDP 和 IMPDP)是Oracle 10g及更高版本引入的高级数据传输机制,它比传统...
与传统的 EXP 和 IMP 工具相比,数据泵工具的主要优点在于它们是服务器端程序,直接运行在数据库服务器上,提高了性能和安全性。同时,它们支持更大的数据流和并行操作,使得大数据量的迁移更为便捷。 使用 EXPDP ...
在Oracle数据库管理中,"exp"和"expdp"是两个重要的数据导出工具,用于进行数据备份。这里我们主要探讨的是"exp定时任务"和"expdp定时任务",特别是它们在逻辑备份中的应用。 首先,让我们了解一下"exp"。"exp"是...
在Oracle数据库管理中,"exp"是Oracle Data Pump Export工具的旧版本,用于将数据库对象的数据和结构导出到一个二进制文件中,以便于备份或迁移数据。当遇到"exp无法导出空表"的问题时,这通常意味着虽然表在数据库...
随着 Oracle 数据库版本的发展,Oracle 推出了新的导入导出工具 `expdp` 和 `impdp` 来替代旧版的 `exp` 和 `imp`,这些新工具提供了更好的性能和更多的特性。 1. **expdp (Export Data Pump)** - **功能**:`...
Oracle 11G 导入导出(imp 和 exp)少表解决方法 Oracle 11G 是一个功能强大且复杂的数据库管理系统,它提供了多种方式来导入和导出数据。然而,在使用 Oracle 11G 时,用户可能会遇到一些问题,例如无法导出空表...
ORACLE EXPDP/IMPDP 是 Oracle 数据库中用于数据泵导出导入的工具,分别对应 EXP 和 IMP 工具。EXPDP/IMPDP 的出现使得 DBA 或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个 Oracle 数据库中。 ...
当涉及到数据迁移、备份或恢复时,"exp"工具(现在已经被"expdp"所取代,但在这里我们仍然讨论exp)是数据库管理员常用的数据导出工具。然而,Oracle11g在设计时默认对空表不分配segment,因此在使用exp导出数据库时...