exp命令优化与常见问题

  *  常规路径(Conventional path)

     常规路径导出是exp默认的导出方式,在这种方式下,exp要处理的数据需要经过sql select语句的方式提取,将数据读取到缓存池,经由Evaluating Buffer 处理后返回到EXport客户端,最后才被写入Dump文件。

    前面的实验都是基于常规路径操作,对于大数据量下常规路径的导出,要提高处理速度,最重要的参数是BUFFER。该参数用来指定执行导出时,处理数据所用的缓存区大小,以字节为单位。这个参数变相用来控制导出时记录数组单次最大能加载的记录数。

   缓存区大小与加载记录数之间可以通过下列公式换算:

   缓存区大小=纪录数组大小* 记录行最大长度

 exp test/test123 compress=n buffer=1024000 file=2012track.dmp tables=track log=2012track.log

 增加buffer参数会大大加快导出速度,但并不是buffer参数越大越好,当buffer参数增大到一定大小时,如果再增加对导出数据的时间是没影响的。

 

  *  直接路径(Direct Path)

直接路径导出使用,在exp中添加参数direct=y即可,该参数值默认为n。同时还有另一参数值对直接路径导出有影响的:recordlength,该参数用来指定export的I/O buffer,以字节为单位,最大不超过65535,一般执行直接路径导出时,建议直接将recordlength参数值设置为65535,以下实验:

exp test/tet123 compress=n direct=y recordlength=65535 file=2012track.dmp tables=track log=2012track.log 

导出的速度比常规路径快很多,但跟加buffer差不多

 

注意:导出时提示EXP-00091错误
处理方法一

查看DB中的NLS_CHARACTERSET的值(提供兩种方法):
select * from nls_database_parameters t where t.parameter='NLS_CHARACTERSET'
or
select * from v$nls_parameters  where parameter='NLS_CHARACTERSET';
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER          VALUE
-----------------------  -------------------------
---------------------
NLS_CHARACTERSET    ZHT16BIG5

根据查出的NLS_CHARACTERSET(ZHT16BIG5)来设定exp的环境变量:
 
WINNT> set NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5
LINUX> export NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5

处理方法二

在exp后加statistics=none

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值