最近帮一个客户做数据迁移测试,数据库版本的10.2.0.4.0,操作系统是AIX到Linux,采用EXPDP/IMPDP方式进行全库导出和导入。

客户的数据库有3.6T,导出时间花了30小时,但是导入却花了120小时,这个很不正常。因为目标数据库的I/O效率比源数据库的I/O效率要高,导入过程中发现导入表数据的时候很快,而后来创建索引的时间特别长,占了80%的时间。通过AWR报告分析,竟然发现在导入过程中运行了下面语句:

ANALYZE TABLE "XXX."XXXX" COMPUTE STATISTICS;

被分析的这个表450G,分析了40小时的时间,这个让人摸不到头脑,后来查看了大量资料,发现这是Oracle10g的一个bug,就是在用expdp导出过程中,如果某个表包含函数索引,则在导入过着中会到该表进行分析,通过形成导入脚本验证了这个说法。下面是验证过程:

Sqlplus system/****

SQL> create table test (id number, name varchar2(30)) tablespace users;

SQL>insert into test values (1,’A’);

SQL>COMMIT;

Expdp system/******** directory=expdir dumpfile=test01.dmp tables=test

Impdp system/******** directory=expdir dumpfile=test01.dmp sqlfile=test01.sql

查看test01.sql的内容

没有发现 表分析语句

创建行数索引

SQL>create index idx_test on test(upper(name)) tablespace users;

重新导出导入形成导入脚本,发现脚本中包含下面内容

CREATE INDEX "SYSTEM"."IDX_FUN_1" ON "SYSTEM"."TEST" (UPPER("NAME"))

PCTFREE 10 INITRANS 2 MAXTRANS 255

STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

TABLESPACE "SYSTEM" PARALLEL 1 ;

ALTER INDEX "SYSTEM"."IDX_FUN_1" NOPARALLEL;

-- new object type path is: TABLE_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS

DECLARE IND_NAME VARCHAR2(60);

IND_OWNER VARCHAR2(60);

BEGIN

DELETE FROM "SYS"."IMPDP_STATS";

IND_NAME := 'IDX_FUN_1'; IND_OWNER := 'SYSTEM';

INSERT INTO "SYS"."IMPDP_STATS" (type, version, flags, c1, c2, c3, c5,

n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, d1)

VALUES ('I', 4, 2, IND_NAME, NULL, NULL, 'SYSTEM', 10, 1, 10, 1, 1, 1, 0, 10, NULL, NULL, NULL, NULL, TO_DATE('2015-11-25 16:02:35', 'YYYY-MM-DD:HH24:MI:SS'));

DBMS_STATS.IMPORT_INDEX_STATS( '"' || ind_owner || '"', '"' || ind_name || '"', NULL, '"IMPDP_STATS"', NULL, '"SYS"');

DELETE FROM "SYS"."IMPDP_STATS";

END;

/

-- new object type path is: TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

ANALYZE TABLE "SYSTEM"."TEST" COMPUTE STATISTICS;

重新导出,忽略统计信息

Expdp system/******** directory=expdir dumpfile=test04.dmp tables=test exclude=STATISTICS

Impdp system/******** directory=expdir dumpfile=test04.dmp sqlfile=test04.sql

发现test04.sql中部包含表分析语句。

结论:

在Oracle 10g 进行数据泵导出时,最好不导出统计信息,到导入后再进行统计信息的收集,省得浪费时间进行无聊的表分析操作,改bug在11g被消除。

oracle数据泵索引创建慢,IMPDP 很慢的原因探究相关推荐

  1. Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解

    Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...

  2. oracle 数据泵导入导出 expdp/impdp

    一. 导出/入前检查 查看用户默认表空间 select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where US ...

  3. oracle数据泵导入 锁,Oracle数据泵expdp导出,impdp导入

    准备: 1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. create directory dpdata as '/opt'; 2)查看管理理员目录(同时查看操作 ...

  4. oracle查询数据泵状态,PLSQL_数据泵导入进度查看Impdp/Expdp Status(案例)

    使用前提 EXPDP和IMPDP只可以在Oracle服务端使用. EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件:EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文 ...

  5. Oracle 数据泵(IMPDP/EXPDP)导入导出总结

    Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp ...

  6. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  7. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)

    转载自:http://www.cnblogs.com/jyzhao/p/4530575.html 目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据 ...

  8. Oracle数据库逻辑备份与恢复(3)——数据泵(expdp、impdp)

    Oracle数据库逻辑备份与恢复(3)--数据泵(expdp.impdp) 使用数据泵技术(expdp.impdp)导出和导入数据比使用exp.imp命令导出和导入数据速度要快,原因是数据泵技术可以使 ...

  9. 如何将mysql导出数据泵_Oracle数据库之ORACLE 数据泵导入导出数据

    本文主要向大家介绍了Oracle数据库之ORACLE 数据泵导入导出数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库 ...

最新文章

  1. jUnit Test遇到org.apache.ibatis.binding.BindingException
  2. 合理的布局,绚丽的样式,谈谈Winform程序的界面设计
  3. 内存可见性和原子性:Synchronized和Volatile的比较
  4. python 列表加入_加入python中的列表列表
  5. flink 写kafka_flink消费kafka的offset与checkpoint
  6. win7旗舰版梦幻主题补丁~完美你的桌面
  7. 布客·ApacheCN 翻译校对活动进度公告 2020.5
  8. c语言case后语句,switch语句中case后的标号是什么
  9. [转]仙剑4破解方法详解(免激活刻盘法)--仙剑爱好者看看[图]
  10. Java中的箭头->符号
  11. 计算机网络名怎么设置,网络ssid怎么设置
  12. 极光Im + layIm 实现后台聊天
  13. 全球与中国液体合成橡胶(LSR)市场深度研究分析报告
  14. OKRs, How Google sets goals, Startup Lab workshop | Chatopera
  15. 整理几个叮咚抢菜、美团买菜助手
  16. 美国教授对中国学生写英文文章的建议
  17. 如何提升运行效率(性能优化)
  18. 基于springboot实现大学生租房系统演示【附项目源码】
  19. 勒索病毒变种再来!你如何应对措施
  20. 解决dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib

热门文章

  1. 单片机小精灵t2_搭建S5P4418 ARM环境下 GPU OPENGL ES开发环境(适用 NANOPI2,3,M2,M3,T2,T3)...
  2. python伪代码书写规范_代码这样写更优雅(Python 版)(转载)
  3. 在CSS中使用not:first-child选择器
  4. Java Collections CheckedCollection()方法与示例
  5. c# uri.host_C#| Uri.HostNameType属性与示例
  6. Spring Boot 最佳实践(二)集成Jsp与生产环境部署
  7. php充值注入,PHP注入一路小跑
  8. java 存储png文件_vue图片上传及java存储图片(亲测可用)
  9. 上机环境是什么意思_380元入手RX580满血显卡,跑分17万,还要什么自行车
  10. 三行代码生成验证码并转换成base64