Chinaunix首页 | 论坛 | 博客
  • 博客访问: 815412
  • 博文数量: 199
  • 博客积分: 6363
  • 博客等级: 准将
  • 技术积分: 2225
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-28 10:01
个人简介

来自农村的老实娃

文章分类

全部博文(199)

文章存档

2017年(1)

2014年(2)

2013年(3)

2012年(6)

2011年(26)

2010年(34)

2009年(50)

2008年(44)

2007年(33)

我的朋友

分类: 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参数,再导入数据之后再手工创建索引。

阅读(3327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~