三九宝宝网宝宝百科宝宝知识

怎样优化exp imp的速度

02月16日 编辑 39baobao.com

[教学过程最优化的教学过程最优化]巴班斯基将最优化分为“总体最优化”和“局部最优化”。学校实践中,领导和教师往往注意到的是个别的、局部的问题,更多地是集中精力解决薄弱环节,而有时甚至以损害其他方面为代...+阅读

当需要exp/imp的数据量比较大时,这个过程需要的时间是比较长的,我们可以用一些方法来优化exp/imp的操作。exp:使用直接路径 direct=y oracle会避开sql语句处理引擎,直接从数据库文件中读取数据,然后写入导出文件. 可以在导出日志中观察到: exp-00067: table xxx will be exported in conventional path 如果没有使用直接路径,必须保证buffer参数的值足够大. 有一些参数于direct=y不兼容,无法用直接路径导出可移动的tablespace,或者用query参数导出数据库子集. 当导入导出的数据库运行在不同的os下时,必须保证recordlength参数的值一致.imp:通过以下几个途径优化 1.避免磁盘排序 将sort_area_size设置为一个较大的值,比如100M 2.避免日志切换等待 增加重做日志组的数量,增大日志文件大小. 3.优化日志缓冲区 比如将log_buffer容量扩大10倍(最大不要超过5M) 4.使用阵列插入与提交 commit = y 注意:阵列方式不能处理包含LOB和LONG类型的表,对于这样的table,如果使用commit = y,每插入一行,就会执行一次提交. 5.使用NOLOGGING方式减小重做日志大小 在导入时指定参数indexes=n,只导入数据而忽略index,在导完数据后在通过脚本创建index,指定 NOLOGGING选项导出/导入与字符集进行数据的导入导出时,我们要注意关于字符集的问题。在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。我们首先需要查看这四个字符集参数。查看数据库的字符集的信息:SQL>select * from nls_database_parameters;PARAMETER VALUE------------------------------ --------------------------------------------------------------------------------NLS_LANGUAGE AMERICANNLS_TERRITORY AMERICANLS_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NUMERIC_CHARACTERS .,NLS_CHARACTERSET ZHS16GBKNLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZMNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZMNLS_DUAL_CURRENCY $NLS_COMP BINARYNLS_NCHAR_CHARACTERSET ZHS16GBKNLS_RDBMS_VERSION 8.1.7.4.1NLS_CHARACTERSET:ZHS16GBK是当前数据库的字符集。我们再来查看客户端的字符集信息:客户端字符集的参数NLS_LANG=_.language:指定oracle消息使用的语言,日期中日和月的显示。Territory:指定货币和数字的格式,地区和计算星期及日期的习惯。Characterset:控制客户端应用程序使用的字符集。通常设置或等于客户端的代码页。 或者对于unicode应用设为UTF8。在windows中,查询和修改NLS_LANG可在注册表中进行:HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOMExx\xx指存在多个Oracle_HOME时的系统编号。在unix中:$ env|grep NLS_LANGNLS_LANG=simplified chinese_china.ZHS16GBK修改可用:$ export NLS_LANG=AMERICAN_AMERICA.UTF8通常在导出时最好把客户端字符集设置得和数据库端相同。当进行数据导入时,主要有以下两种情况:

(1) 源数据库和目标数据库具有相同的字符集设置。这时,只需设置导出和导入端的客户端NLS_LANG等于数据库字符集即可。

(2) 源数据库和目标数据库字符集不同。先将导出端客户端的NLS_LANG设置成和导出端的数据库字符集一致,导出数据,然后将导入端客户端的NLS_LANG设置成和导出端一致,导入数据,这样转换只发生在数据库端,而且只发生一次。这种情况下,只有当导入端数据库字符集为导出端数据库字符集的严格超集时,数据才能完全导成功,否则,可能会有数据不一致或乱码出现。不同版本的EXP/IMP问题一般来说,从低版本导入到高版本问题不大,麻烦的是将高版本的数据导入到低版本中,在Oracle9i之前,不同版本Oracle之间的EXP/IMP可以通过下面的方法来解决:

1、在高版本数据库上运行底版本的catexp.sql;

2、使用低版本的EXP来导出高版本的数据;

3、使用低版本的IMP将数据库导入到低版本数据库中;

4、在高版本数据库上重新运行高版本的catexp.sql脚本。但在9i中,上面的方法并不能解决问题。如果直接使用低版本EXP/IMP会出现如下错误:EXP-00008: ORACLE error %lu encounteredORA-00904: invalid column name这已经是一个公布的BUG,需要等到Oracle10.0才能解决,BUG号为2261722,你可以到METALINK上去查看有关此BUG的详细信息。BUG归BUG,我们的工作还是要做,在没有Oracle的支持之前,我们就自己解决。在Oracle9i中执行下面的SQL重建exu81rls视图即可。CREATE OR REPLACE view exu81rls(objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy)AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname,...

以下为关联文档:

儿保科预诊分诊流程怎样优化1,预检,分诊的规范“ 按照卫生部《医疗机构传染病预检分诊管理办法》,医院应当建立发热病人预检,分诊点.预检,分诊点标示要明确,相对独立,通风良好,流程合理,具有消毒隔离条件和必要...

怎样进行sql数据库的优化怎么办"在数据库应用系统(System)中编写可执行的SQL语句可以有多种方式实现,但哪一条是最佳方案却难以确定。为了处理这一问题,有必要对SQL实施优化。容易地说,SQL语句的优化就是将性能...

Oracle数据库的性能怎样优化一、通过操作系统的一些工具检查系统的状态,比如CPU、内存、交换、磁盘的利用率,根据经验或与系统正常时的状态相比对,有时系统表面上看起来看空闲这也可能不是一个正常的状态,...

怎样优化SQL语句提高效率我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。 (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM...

怎样进行sql数据库的优化改进数据库SQL语句进行优化的理由 应用程序之优化通常可分为两个方面:源代码之优化和SQL语句之优化。源代码之优化在时间成本和风险上代价很高;另一方面,源代码之优化对数据库...

初学者问题:请问oracle中exp导出权限选项是什么意思C:\exp system/systemsid owner=scott grants=y file=e:\dba.dmpExport: Release 9.2.0.1.0 - Production on 星期一 3月 23 17:57:30 2009Copyright (c) 1982, 2002, Oracl...

怎样把仓库货架里的物料优化摆放与进出1、不走回头路——这是配货保证的基本原则不管是对于订单出货还是供应商来货,都必须保证在货物在同一条直线上执行。 2、货架指引路——这是货品排位科学合理的前提货架依场...

exp是生产日期还是保质期保质期 exp是保质期,即产品的使用期限,是Expirydate的缩写,食品的的保质期由生产者提供,标注在限时使用的产品上。在保质期内,产品的生产企业对该产品质量符合有关标准或明示担保...

怎样优化系统开机进程优化系统的方法 1、加快开关机速度在Windows XP中关机时,系统会发送消息到运行程序和远程服务器,告诉它们系统要关闭,并等待接到回应后系统才开始关机。加快开机速度,可以先设置...

推荐阅读
图文推荐