欢迎来到天天文库
浏览记录
ID:50827977
大小:51.03 KB
页数:13页
时间:2020-03-15
《Oracle数据库ExpImp工具性能调优.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle数据库Exp/Imp工具性能调优一、Exp调优1.使用DIRECT和RECORDLENGTH选项DIRECT参数定义了导出是使用直接路径方式(DIRECT=Y),还是常规路径方式(DIRECT=N)。常规路径导出使用SQLSELECT语句从表中抽取数据,直接路径导出则是将数据直接从磁盘读到PGA再原样写入导出文件,从而避免了SQL命令处理层的数据转换过程,大大提高了导出效率。在数据量大的情况下,直接路径导出的效率优势更为明显,可比常规方法速度提高三倍之多。和DIRECT=Y配合使用的是RECORDLENGTH参数,它
2、定义了ExportI/O缓冲的大小,作用类似于常规路径导出使用的BUFFER参数。建议设置RECORDLENGTH参数为最大I/O缓冲,即65535(64kb)。其用法如下:expuserid=system/managerfull=ydirect=yrecordlength=65535file=exp_full.dmplog=exp_full.log直接路径导出根据Oracle版本不同,有一些使用限制。比较重要的限制有,8i及以下版本不支持导出客户端和数据库的字符集转换,因此导出前必须保证NLS_LANG设置正确;8.1.5及以
3、下版本不支持导出含LOBs对象的表;不能使用QUERY参数等。2.使用管道技术管道是从一个程序进程向另一个程序进程单向传送信息的技术。通常,管道把一个进程的输出传给另一进程作为输入。如果导出的数据量很大,可以利用管道直接生成最终的压缩文件,所耗费的时间和不压缩直接导出的时间相当。这样一来,不仅能够解决磁盘空间不足的问题,而且省去了单独压缩文件的时间;如果需要传输导出文件,还可以减少网络传输的时间。比如,一个10G的文件单独压缩可能需要半小时以上的时间。虽然管道技术不能够直接缩短Exp/Imp本身的时间,但节省出来的压缩时间非常可
4、观。管道和Exp结合的具体使用方法如下:导出数据示例:%mknod/tmp/exp_pipep#Makethepipe%compressexport.dmp.ZBackgroundcompress%expfile=/tmp/exp_pipe#Exporttothepipe二、Imp调优OracleImport进程需要花比Export进程数倍的时间将数据导入数据库。某些关键时刻,导入是为了应对数据库的紧急故障恢复。为了减少宕机时间,加快导入速度显得至关重要。没有特效办法加速一个大数据量的导入,但我
5、们可以做一些适当的设定以减少整个导入时间。1.使用管道技术前面已经说明了Exp时如何使用管道,在导入时管道的作用是相同,不仅能够解决磁盘空间不足的问题,而且省去了单独解压缩文件的时间。在大数据量导入导出的时候,推荐一定要使用管道。导入数据示例:%mknod/tmp/imp_pipep#Makethepipe%uncompress/tmp/imp_pipeBackgrounduncompress%impfile=/tmp/imp_pipe#Importfromthepipe2.避免I/O竞争Impo
6、rt是一个I/O密集的操作,避免I/O竞争可以加快导入速度。如果可能,不要在系统高峰的时间导入数据,不要在导入数据时运行job等可能竞争系统资源的操作。3.增加排序区OracleImport进程先导入数据再创建索引,不论INDEXES值设为YES或者NO,主键的索引是一定会创建的。创建索引的时候需要用到排序区,在内存大小不足的时候,使用临时表空间进行磁盘排序,由于磁盘排序效率和内存排序效率相差好几个数量级。增加排序区可以大大提高创建索引的效率,从而加快导入速度。8i及其以下版本:导入数据前增加数据库的sort_area_size
7、大小,可设为正常值的5-10倍。但这个值设定会影响到所有会话,设的过高有可能导致内存不足出现paging,swapping现象。更为稳妥的方法是,对于大表和索引特别多的表,只导数据不导索引。导完数据后,创建一个会话,设定当前会话的sort_area_size一个足够大的值,再手工创建索引。9i:在workarea_size_policy=AUTO的情况下,所有会话的UGA共用pga_aggregate_target定义的内存,不必单独设定sort_area_size。导入数据前增加pga_aggregate_target大小,如
8、果机器内存够大,可从通常设定的500M提高到1-2G。pga_aggregate_target大小可以动态调整,导入完成后可在线调回原值。4.调整BUFFER选项Imp参数BUFFER定义了每一次读取导出文件的数据量,设的越大,就越减少Import进程读取数据的
此文档下载收益归作者所有