来自农村的老实娃
分类: Oracle
2009-12-22 15:10:09
为什么IMP速度慢?
1、IMP作了大量的跟普通方式一样的insert
2、IMP时候创建索引通常是logging的,产生了大量的undo和redo
如何提高IMP的速度
1、不建议使用commit参数,因为当imp失败的时候,会导致很多后续的麻烦事儿
2、增大buffer参数值,以便于一次读进更大的array
3、设置较大的初始化参数sort_area_size,以加快创建索引时候的排序速度
4、增大重作日志的大小,以减少log switch的次数,也就是减少checkpoint次数,减少写磁盘的次数
a、查看日志
select a.GROUP#,MEMBER,BYTES/1024/1024 M
from v$log a,v$logfile b
where a.GROUP#=b.GROUP#;
b、增加日志组
alter database add logfile group 4
('D:\ORACLE\ORADATA\JOSEPH\log04.LOG',
'D:\ORACLE\ORADATA\JOSEPH\redo04.LOG')
size 100m;
c、添加日志文件
alter database add logfile member
'D:\ORACLE\ORADATA\JOSEPH\log___01.LOG' to group 1,
'D:\ORACLE\ORADATA\JOSEPH\log___02.LOG' to group 2;
d、删除日志组文件
alter database drop logfile group 4;
5、如果要往已经存在的表中追加数据,那么有些情况下,比如表中存在位图索引,那么最好先删除索引,再导入。否则更新索引时会产生大量等待
6、使用indexfile和indexes参数,再导入数据之后再手工创建索引。