提高imp速度的思路

本文探讨了IMP速度慢的原因,如大量的插入操作和索引创建时产生的undo与redo,并提出了多种提高IMP速度的方法,包括增大buffer参数值、设置较大的sort_area_size、增大重做日志大小等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路A:
为什么IMP速度慢?
1。IMP作了大量的跟普通方式一样的insert
2。IMP时候创建索引通常是logging的,产生了大量的undo和redo
如何提高IMP的速度
1。不建议使用commit参数,因为当imp失败的时候,会导致很多后续的麻烦事儿
2。增大buffer参数值,以便于一次读进更大的array
3。设置较大的初始化参数sort_area_size,以加快创建索引时候的排序速度
4。增大重作日志的大小,以减少log switch的次数,也就是减少checkpoint次数,减少写磁盘的次数
5。如果要往已经存在的表中追加数据,那么有些情况下,比如表中存在位图索引,那么最好先删除索引,再导入。否则更新索引时会产生大量等待。
6。使用indexfile和indexes参数,再导入数据之后再手工创建索引。


思路B:
        建立一个indexfile,在数据import完成后在建立索引
        将import文件放在不同的驱动器上
        增加db_block_buffers
        增加log_buffer
        用非归档方式运行oracle:
                --如果有个大的日志文件当然也会提高速度,不过临时加大太烦琐
       alter database noarchivelog;
        建立大的表空间和大的回滚段,offline其他回滚段,回滚段的大小为最大表的1/2
        使用 commit=n
        使用analyze=n
另外可以用单用户模式导入
或者用管道模式直接导入导出来提高imp/exp的性能
管道的使用方法
在源机器之上(称之为src)执行导出:
mknod /dev/p_exp p
在目的机器之上(称之为trgt)执行导出:
mknod /dev/p_imp p
在两个机器上通过l s命令确保两个管道都已被创建。
2) 将“导入管道(在src之上)”复制到“导入管道(在trgt之上)”。可以使用任何允
许远程复制的命令(例如rcp)。本例通过rsh使用dd命令。
在trgt之上:
rsh src dd if=/dev/p_exp > /dev/p_imp
3) 启动导出进程。
在src之上:
exp userid=username file=/dev/p_exp full=y direct=y
4) 启动导入进程。
在trgt之上:
imp userid=username file=/dev/p_imp buffer=???? full=y
另外一种增加导出/导入吞吐量的方法是使用单任务模式的导出和导入实用工具。在unix上,缺省情况下
imp/exp都是以双任务模式链接的(换句话说,创建了一个影子进程,利用它隔离oracle内核代码和导出/导入代码,
又就是说这些代码变成私有,不再给共享了)。使用单任务的导出/导入使用工具可以增加整个吞吐量大致为0~20%。
但是,以单任务模式链接的实用工具会消耗更多的内存,因为oracle可执行代码不再被所有后台进程和前台进程共享。
单任务可执行代码的名字与常规的双任务可执行代码一样,除了前者拥有“st”后缀之外(所以单任务的exp变为expst,
单任务的imp变为impst)。
单任务模式的实用工具需要通过下面的
命令显式地链接:
cd $oracle_home/rdbms/lib
make -f ins_rdbms.mk expst     
make -f ins_rdbms.mk impst
-- ins_rdbms.mk要根据oracle版本来决定
export方面:
        增加 buffer (eg. 2800000)
        停止所有应用(不一定现实)
        export文件不在oracle使用的驱动器上
        不要export到nfs文件系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值