oracle数据泵索引创建慢,IMPDP 很慢的原因探究
最近帮一个客户做数据迁移测试,数据库版本的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 很慢的原因探究相关推荐
- Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解
Oracle数据泵备份与恢复 命令 expdp/impdp 用法详解 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户 ...
- oracle 数据泵导入导出 expdp/impdp
一. 导出/入前检查 查看用户默认表空间 select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where US ...
- oracle数据泵导入 锁,Oracle数据泵expdp导出,impdp导入
准备: 1)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建. create directory dpdata as '/opt'; 2)查看管理理员目录(同时查看操作 ...
- oracle查询数据泵状态,PLSQL_数据泵导入进度查看Impdp/Expdp Status(案例)
使用前提 EXPDP和IMPDP只可以在Oracle服务端使用. EXP导出的文件只可以使用IMP导入,不适用于IMPDP导入文件:EXPDP导出的文件只可以使用IMPDP导入,而不适用于IMP导出文 ...
- Oracle 数据泵(IMPDP/EXPDP)导入导出总结
Oracle数据泵导入导出是日常工作中常用的基本技术之一,它相对传统的逻辑导入导出要高效,这种特性更适合数据库对象数量巨大的情形,因为我日常运维的数据库对象少则几千,多则几万甚至几十万,所以传统exp ...
- Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)
<Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...
- Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)
转载自:http://www.cnblogs.com/jyzhao/p/4530575.html 目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据 ...
- Oracle数据库逻辑备份与恢复(3)——数据泵(expdp、impdp)
Oracle数据库逻辑备份与恢复(3)--数据泵(expdp.impdp) 使用数据泵技术(expdp.impdp)导出和导入数据比使用exp.imp命令导出和导入数据速度要快,原因是数据泵技术可以使 ...
- 如何将mysql导出数据泵_Oracle数据库之ORACLE 数据泵导入导出数据
本文主要向大家介绍了Oracle数据库之ORACLE 数据泵导入导出数据,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 一.摘要 在平常备库和数据库迁移的时候,当遇到大的数据库 ...
最新文章
- jUnit Test遇到org.apache.ibatis.binding.BindingException
- 合理的布局,绚丽的样式,谈谈Winform程序的界面设计
- 内存可见性和原子性:Synchronized和Volatile的比较
- python 列表加入_加入python中的列表列表
- flink 写kafka_flink消费kafka的offset与checkpoint
- win7旗舰版梦幻主题补丁~完美你的桌面
- 布客·ApacheCN 翻译校对活动进度公告 2020.5
- c语言case后语句,switch语句中case后的标号是什么
- [转]仙剑4破解方法详解(免激活刻盘法)--仙剑爱好者看看[图]
- Java中的箭头->符号
- 计算机网络名怎么设置,网络ssid怎么设置
- 极光Im + layIm 实现后台聊天
- 全球与中国液体合成橡胶(LSR)市场深度研究分析报告
- OKRs, How Google sets goals, Startup Lab workshop | Chatopera
- 整理几个叮咚抢菜、美团买菜助手
- 美国教授对中国学生写英文文章的建议
- 如何提升运行效率(性能优化)
- 基于springboot实现大学生租房系统演示【附项目源码】
- 勒索病毒变种再来!你如何应对措施
- 解决dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
热门文章
- 单片机小精灵t2_搭建S5P4418 ARM环境下 GPU OPENGL ES开发环境(适用 NANOPI2,3,M2,M3,T2,T3)...
- python伪代码书写规范_代码这样写更优雅(Python 版)(转载)
- 在CSS中使用not:first-child选择器
- Java Collections CheckedCollection()方法与示例
- c# uri.host_C#| Uri.HostNameType属性与示例
- Spring Boot 最佳实践(二)集成Jsp与生产环境部署
- php充值注入,PHP注入一路小跑
- java 存储png文件_vue图片上传及java存储图片(亲测可用)
- 上机环境是什么意思_380元入手RX580满血显卡,跑分17万,还要什么自行车
- 三行代码生成验证码并转换成base64