传统路径导出 VS 直接路径导出(oracle exp direct=y)
Oracle 传统的Export与Import依旧被保留到11g,而且9i与10g有很多依旧使用Export与Import方式进行备份与恢复的企业。从Oracle 7.3开始,传统的exp导出程序提供两种的导出路径方式,一个是传统路径导出(Conventional Path Export),一个是直接路径导出(Direct Path Export)。本文即是因最近客户的传统导入导出性能问题对此进行描述。
1、两者的差异
a、 Conventional path Export
传统路径模式使用SQL SELECT语句抽取表数据。数据从磁盘读入到buffer cache缓冲区中,行被转移到评估缓冲区。
在此之后根据SQL表达式,将记录返回给导出客户端,然后写入到dump文件。
b、Direct path Export
直接导出模式,数据直接从磁盘中读取到导出session的PGA中,行被直接转移到导出session的私有缓冲区,从而跳过SQL命令处理层。
避免了不必要的数据转换。最后记录返回给导出客户端,写到dump文件。
2、性能问题
a、直接路径导出方式比传统路径方式具有更优的性能,速度更快,因为绕过了SQL命令处理部分。
b、直接路径导出方式支持RECORDLENGTH参数(最大为64k),该参数值通常建议设置为系统I/O或者DB_BLOCK_SIZE的整数倍
c、影响直接路径导出的具体因素(DB_BLOCK_SIZE,列的类型,I/O性能,即数据文件所在的磁盘驱动器是否单独于dump文件所在的磁盘驱动器)
d、无论是直接路径导出还是传统路径导出产生的dump,在使用imp方式导入时,会耗用相同的时间
3、简单示例
> exp system/manager FILE=exp_full.dmp LOG=exp_full.log \
FULL=y DIRECT=y RECORDLENGTH=65535
> imp system/manager FILE=exp_full.dmp LOG=imp_full.log \
FULL=y RECORDLENGTH=65535
4、直接路径导出的限制
a、直接路径导出不支持交互模式
b、不支持表空间传输模式(即TRANSPORT_TABLESPACES=Y不被支持),支持的是FULL,OWNER,TABLES导出方式
c、不支持QUERY查询方式,如exp scott/tiger TABLES=emp QUERY=\"WHERE job=\'SALESMAN\' \" 不被支持
d、直接路径导出使用RECORDLENGTH设置一次可以导出数据的量,取代传统路径使用buffer的设置
e、直接路径导出要求NLS_LANG环境参数等于数据库字符集,负责收到EXP-41警告及EXP-0终止错误
5、演示两种方式性能差异
- a、传统路径导出与直接路径导出性能对比
- #下面直接进行日志对比
- robin@SZDB:/u02/database/SYBO2SZ/BNR/dump> more dump1.log
- Start to dump at Fri Jun 21 15:32:57 CST 2013 ....
- Connected to: Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
- Export done in US7ASCII character set and UTF8 NCHAR character set
- server uses UTF8 character set (possible charset conversion)
- About to export specified tables via Conventional Path ...#这个地方是关键描述信息,指明了导出方式
- . . exporting table TRADE_CLIENT_TBL_ARC 1395093 rows exported #数据139万行
- Export terminated successfully with warnings.
- End dump at Fri Jun 21 15:34:31 CST 2013 . #耗用时间15:34:31-15:32:57=不到2min
- # Author : Robinson
- # Blog : http://blog.csdn.net/robinson_0612
- robin@SZDB:/u02/database/SYBO2SZ/BNR/dump> more dump2.log
- Start to dump at Fri Jun 21 15:37:13 CST 2013 ....
- Connected to: Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
- Export done in US7ASCII character set and UTF8 NCHAR character set
- server uses UTF8 character set (possible charset conversion)
- About to export specified tables via Direct Path ...#这个地方是关键描述信息,指明了导出方式
- . . exporting table TRADE_CLIENT_TBL_ARC 1395093 rows exported
- Export terminated successfully with warnings.
- End dump at Fri Jun 21 15:37:30 CST 2013 . #耗用时间15:37:30-15:37:13 =17s
- b、演示对lob数据类型的支持
- scott@SYBO2SZ> create table scott.testtab2 (nr number, txt clob);
- Table created.
- scott@SYBO2SZ> declare
- 2 x varchar2(50);
- 3 begin
- 4 for i in 1..5000 loop
- 5 x := 'This is a line with the number: ' || i;
- 6 insert into scott.testtab2 values(i,x);
- 7 commit;
- 8 end loop;
- 9 end;
- 10 /
- PL/SQL procedure successfully completed.
- scott@SYBO2SZ> select count(*) from testtab2;
- COUNT(*)
- ----------
- 5000
- robin@SZDB:/u02/database/SYBO2SZ/BNR/dump> exp scott/tiger file=exp_testtab2.dmp tables=scott.testtab2 direct=y
- Export: Release 10.2.0.3.0 - Production on Fri Jun 21 11:56:37 2013
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- Connected to: Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
- Export done in US7ASCII character set and UTF8 NCHAR character set
- server uses UTF8 character set (possible charset conversion)
- About to export specified tables via Direct Path ...
- Table TESTTAB2 will be exported in conventional path.
- . . exporting table TESTTAB2 5000 rows exported
- Export terminated successfully without warnings.
传统路径导出 VS 直接路径导出(oracle exp direct=y)的更多相关文章
- oracle exp direct 执行机制
使用直接导出模式 direct=y exp 比传统模式导出快一倍 oracle提供2种模式导出表数据,传统模式CONVENTIONAL PATH和直接模式DIRECT PATH,有direct指定. ...
- oracle exp(expdp)数据迁移(生产环境,进行数据对比校验)
前言:客户需要迁移XX 库 ZJJJ用户(迁移到其他数据库),由于业务复杂,客户都弄不清楚里面有哪些业务系统,为保持数据一致性,需要停止业务软件,中间件,杀掉oracle进程. 一.迁移数据倒出部分= ...
- Oracle exp/imp数据导入导出工具基本用法
一.获取帮助 exp/imp help=y 二.数据导出 1.将数据库完全导出,设置full选项exp system/manager@orcl file=d:\db.dmp full=y 2.导出数据 ...
- 案例情景--在一次Oracle 数据库导出时 EXP-00008;ORA-00904:EXP-00000: oracle不同版本导入导出规则
案例情景--在一次Oracle 数据库导出时: C:\Documents and Settings\Administrator>exp lsxy/lsxy@lsxy_db file=E:\lsx ...
- Oracle exp,imp,expdp,impdp数据导入导出
一.导出模式(三种模式)及命令格式 1. 全库模式 exp 用户名/密码@网络服务名 full=y file=路径\文件名.dmp log=路径\文件名.log 2. 用户模式(一般情况下采用此模式) ...
- oracle EXP导出一张表时使用query参数指定where条件
oracle exp 导出一个表的部分内容,使用query参数可加上SQL的where条件进行过滤 注意:如果需要使用到日期字符串格式等单引号,需要使用双引号将where条件括起来,而且双引号要用\做 ...
- oracle exp、imp实现导出导入
一.说明 oracle 的exp/imp命令用于实现对数据库的导出/导入操作; exp命令用于把数据从远程数据库服务器导出至本地,生成dmp文件; imp命令用于把本地的数据库dmp文件从本地导 ...
- oracle exp 无法导出空表
oracle exp 无法导出空表 select 'alter table '|| a.table_name ||' allocate extent;' from user_tables a wh ...
- JXLS导出Excel(模板导出)
1.导包 在pom.xml中加入依赖如下: <dependency> <groupId>org.jxls</groupId> <artifactId>j ...
随机推荐
- 树剖模板by fcdalao
#include<bits/stdc++.h> using namespace std; ; *MX]; *MX]; int n,Index,fir[MX],fa[MX],dfn[MX], ...
- TYVJ 1035 / codevs 2171 棋盘覆盖
Problem Description 给定一个n * m的棋盘,已知某些各自禁止放置,求最多往棋盘上放多少长度为2宽度为1的骨牌(骨牌不重叠) Input 第一行为n,m(表示有m个删除的格子)第二 ...
- 如何用PhotoShop制作网站的favicon.ico
所谓favicon,即Favorites Icon的缩写,顾名思义,便是其可以让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站.当然,这不仅仅是Favicon的全部,根据浏览器的不同 ...
- idea中mybatis-plugin破解
Mybatis Plugin 一.Mybatis Plugin插件是什么 提供Mapper接口与配置文件中对应SQL的导航 编辑XML文件时自动补全 根据Mapper接口, 使用快捷键生成xml文件及 ...
- java 构造函数问题
1.构造函数什么时候被调用,被谁调用? 转摘:http://bbs.csdn.net/topics/350231037 当然,只有在NEW的时候,才会真正的创建这个对象,只有在创建时才会调用该类的构造 ...
- C# 程序Hello World
先创建一个工程文件->选择的是console application. 然后开始写代码如下: using System; using System.Collections.Generic; us ...
- rpmdb open failed解决方案
1.前提条件:安装软件包的时候,被我手动终止了(可能出错原因)[root@dhcp yum.repos.d]# yum clean allrpmdb: Thread/process 4541/1406 ...
- 【BZOJ2326】【HNOI2011】数学作业 [矩阵乘法][DP]
数学作业 Time Limit: 10 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Description Input 输入文件只有一行为用空 ...
- 【mysql优化】大数据量分页优化
limit 翻页原理 limit offset,N, 当offset非常大时, 效率极低, 原因是mysql并不是跳过offset行,然后单取N行, 而是取offset+N行,返回放弃前offset行 ...
- word2vec 理论与实践
导读 本文简单的介绍了Google 于 2013 年开源推出的一个用于获取 word vector 的工具包(word2vec),并且简单的介绍了其中的两个训练模型(Skip-gram,CBOW),以 ...