expdp/impdp在进行数据迁移时速度极快,通过一定的优化方法,我们让expdp和impdp跑得更加快

1,parallel,在很多oracle的程序中都离不开并行操作,通过利用多core

cpu的处理能力,速度增加相

当明显

例:frank用户主要有表T1,T2,T3,每个表中数据有500万行

[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc

dumpfile=abc.dmp

real 0m41.692s

user 0m0.011s

sys 0m0.032s

[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc

dumpfile=abc.dmp parallel=3

real 0m26.710s

user 0m0.019s

sys 0m0.007s

速度提升相当明显,如果每个dw进程都使用单独的dmp文件会更快

[oracle@cscscslocalhost abc]$ time expdp frank/frank directory=abc

dumpfile=abc%U.dmp parallel=3

real 0m22.928s

user 0m0.017s

sys 0m0.008s

一般建议parall设置不要超过cpu*2.

2,transport_tablespace方法,直接复制表空间文件的方式。使用expdp和impdp只导出了数据字典信息.表空间

要是自包含的

SQL> exec

dbms_tts.transport_set_check('USERS',true);

PL/SQL procedure successfully completed.

SQL> select * from transport_set_violations;

no rows selected

transport

tablespace的方法是迁移数据最快的方法。因为数据本身是不需要oracle的sql层来处理.但是表空间

在expdp期间要设置成只读状态

3,network_link模式.当数据文件比较大的时候,这时候在目标库上直接通过network_link模式在目标

库上进行导入,而不需要在源库上进行expdp操作,处理方式和正常的expdp/impdmp过程类似。这样做的

好处主要是可以避免了在源库上写大文件,然后还需要移动到目标库上.

dongdongtang> grant datapump_exp_full_database to

frank;

Grant succeeded.

目标库

dongdongtang> create database link frank connect to frank

identified by frank using 'frank';

Database link created.

[oracle@localhost admin]$ impdp \'/ as sysdba\' network_link=frank

schemas=frank

network_link 定义了一个db_link名称,该过程把源端的frank

schemas导入到目标库上.

4,使用适当的方法.expdp/impdp包括了两种主要方法direct_path和external_table

使用direct_path会skip掉sql layer,速度会更快,但是不能定义query

[oracle@localhost ~]$ expdp frank/frank dumpfile=abc.dmp

query=T1:"where a>5" access_method=direct_path

ORA-39033: Data cannot be filtered under the direct path access

method.

其他的方法还有一些限制,具体可以参考mos相关文档。datapump一般会在启动的时候自动决定使用哪种方式,而且一

旦决定不可以通过interactive的方式修改.可以使用400300来进行trace使用了哪种方式

KUPW:02:03:30.332: 1: TABLE_DATA:"FRANK"."T1" direct path,

parallel: 1

KUPW:02:03:30.332: 1: In function

GATHER_PARSE_ITEMS

KUPW:02:03:30.332: 1: In function

CHECK_FOR_REMAP_NETWORK

5,对于index不会并行,对大表有索引的情况下,考虑索引以后单独

使用parallel,nologging重建。事实上在

expdp的导出过程中对索引不会像表数据那样需要导出,索引只导出了ddl语句.

6,statistics的导入可能会非常慢,特别是在10.2之前。在expdp中尽量exclude,在impdp后,使用单独的收集

任务来完成.

7,利用强大的过滤功能,主要的选项有tables,include,exclude和query。tables定义只导出某些需要的表,

include表示只导出某些对像,exclude表示排除某些对像.query可以对表中数据进行过滤,只导出我们需要的

那部分数据.

8,利用压缩过功能可以减少dump文件的大小

[oracle@localhost dpdump]$ expdp frank/frank dumpfile=abc.dmp

tables=t1

[oracle@localhost dpdump]$ ls -l abc.dmp

-rw-r----- 1 oracle oinstall 1583874048 Jan 20 03:54

abc.dmp

[oracle@localhost dpdump]$ expdp frank/frank dumpfile=abc.dmp

tables=t1 compression=all

[oracle@localhost dpdump]$ ls -l abc.dmp

-rw-r----- 1 oracle oinstall 197234688 Jan 20 04:29

abc.dmp

可以看到压缩前1.5G,压缩过后只有190M左右.

在12c的版本中,可以通过compression_algorithm来定义压缩算法,常用的压缩级别有:basic,low,medium,high。

结合paralell,可以非常好的利用多core cpu的处理能力.

在11G以前的版本中也有很多的bug会导致datapump变慢的情况,可以查询相关的mos文档.datapump是使用dbms_metadata

和dbms_datapump两个包来完成的,所以shared pool要保证不会太小.

impdp 并行_Oracle expdp/impdp常用性能优化方法相关推荐

  1. impdp 并行_Oracle expdp/impdp常用性能优化方法

    Oracle expdp/impdp常用性能优化方法 expdp/impdp在进行数据迁移时速度极快,通过一定的优化方法,我们让expdp和impdp跑得更加快 1,parallel,在很多oracl ...

  2. [导入]ASP.NET26个常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

  3. ASP.NET 26个常用性能优化方法

    数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...

  4. sql优化常用的几种方法_Hive常用性能优化方法实践全面总结

    Apache Hive作为处理大数据量的大数据领域数据建设核心工具,数据量往往不是影响Hive执行效率的核心因素,数据倾斜.job数分配的不合理.磁盘或网络I/O过高.MapReduce配置的不合理等 ...

  5. 并行、并发和代码性能优化

    1.并行:是指在具有多个处理单元的系统上,通过将计算或者数据分割为多个部分,将各个部分分配到不同的处理单元上,各处理单元相互协作,同时运行,已达到加快求解速度或者提高求解问题规模的目的.并行意味着多个 ...

  6. 大主子表关联的性能优化方法

    [摘要] 主子表是数据库最常见的关联关系之一,最典型的包括合同和合同条款.订单和订单明细.保险保单和保单明细.银行账户和账户流水.电商用户和订单.电信账户和计费清单或流量详单.当主子表的数据量较大时, ...

  7. HBase性能优化方法总结(四):数据计算

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第四部分内容:数据计算相关的优化方法 ...

  8. HBase性能优化方法总结(4):读表操作

    来自:http://www.cnblogs.com/panfeng412/archive/2012/03/08/hbase-performance-tuning-section3.html 本文主要是 ...

  9. HBase性能优化方法总结(3):写表操作

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第二部分内容:写表操作相关的优化方法 ...

最新文章

  1. Beta阶段总结博客(麻瓜制造者)
  2. 有 Bug 不会调试 ? 这篇文章很详细 !
  3. Java 8新特性——default方法(defenece方法)介绍
  4. The python debugger调试(PDB)的简介
  5. 结合代码详细聊聊 Java 网络编程中的 BIO、NIO 和 AIO
  6. python鸢尾花数据集_Python实现鸢尾花数据集分类问题——使用LogisticRegression分类器...
  7. python开发框架 代码生成_我的第一个python web开发框架(31)——定制ORM(七)...
  8. php curl 缓存请求_PHP异步非阻塞实现方法
  9. 3dmax2022新功能特性-3ds max2022中文版安装包安装教程
  10. win 10网络适配器没有无线网络连接(连不上WLAN)
  11. flask爱家租房项目开发(十二)
  12. layui 借助 parseData 回调函数解析table 组件所规定的数据格式
  13. java 软件开发面试宝典
  14. for..in和for ..of的用法
  15. 2022年济南12行政区高新技术企业补贴政策及认定条件汇总
  16. 【用户行为分析】 用wiki百科中文语料训练word2vec模型
  17. 卡片 -【2020牛客NOIP-普及组(第四场)】
  18. Abbkine BCA法 蛋白质定量试剂盒说明书
  19. 米框量化交易指标编写kd
  20. 电脑图片无损放大怎么操作 ?怎么无损放大图片?

热门文章

  1. Flutter文本输入框TextField的焦点控制
  2. vue使用axios请求相关配置文件包括跨域配置
  3. PHPExcel使用说明
  4. SCI必备Latex编写工具(texlive+texstudio的安装及使用---超详细)
  5. Midjourney助力交互设计师设计网站主页
  6. html iframe 传递数据,javascript – 如何通过iframe从父HTML传递参数?
  7. 朝鲜建立VR实验室nbsp;神奇之处令…
  8. 群晖第三篇-使用ActiveBackupForBusiness备份数据
  9. 01.08学习Java的day18【泛型与集合】
  10. 用Python制作会跳动的心,体验理工男李峋的浪漫