资:由于工作需要,用oracle imp工具导入300W条记录到一张表中,使用的最简单的语句imp file=XXX.dmp
full=y ignore=y.结果漫长的等待了快1个小时才导入完成。(硬件是Dell 2850 ,memory 8G)
治:imp时加入buffer=4096000 使导入时间缩短为10分钟左右
通:首先了解Oracle IMP的过程:如下图所示
1、import 进程读取DMP文件,准备数据并传输到数据系统中(这个过程是单线程的,纯顺序读IO,IO等待是这阶段慢的主要原因)
2、数据库等待从import进程中输入的数据后插入表中,之后再次等待从import进程来的新数据。在插入数据库的过程中分别使用DBW0和LOGWR两个oracle进程处理。DBW0负责插入新的数据和建立索引。LOGWR负责写日志文件。
从上述过程中,我们要提升IMP的效率,可以从几个方面来优化:
a)在阶段1的过程中,既然是顺序读,那么可以一次读多点,减少了读的次数,从而提高效率。在这方面buffer是一个不错的选择。imp的参数列表中有一个buffer参数。这个buffer参数的设置不是来源于database的,而是来源于IMP命令。参见<exp/imp
>。那么buffer参数的能设置的大小仅仅受限于操作系统的限制。
b)在阶段2中,可以通过增加db_cache_size的大小,来提高DBW0的效率;适当增加
log_buffer的大小,来提高LOGWR的效率。
c)将建立索引放到imp后再建立,减少DBW0的时间
d) 如果数据库为归档模式,IMP前调整为非归档模式,从而减少LOGWR的压力
鉴:Oracle IMP 默认的buffer为4096byte,
采用加大buffer的方法,提高imp效率,仅仅是一种手段而已,只有对整个过程的把握,才能清晰明白优化的思路.
- 大小: 35 KB
分享到:
相关推荐
Oracle 分区技术及大数据量操作性能优化.ppt
oracle 使用IMP命令导入数据时 经常会碰到乱码问题,本文档从根本上解决了导入数据乱码根源及解决办法
Oracle 大数据量操作优化.pdf
针对大数据量操作性能降低的情况,本文提出了Oracle针对大数据量的操作优化。
Oracle大数据量操作优化
这个文件是用oracle的脚本的如的,往oracle中插入的数据量可能会使用
oracle imp exp几点应用技巧
Oracle大数据量导入 博文链接:https://abe.iteye.com/blog/1054515
一般的做法是直接删除表空间然后imp导入数据,但是我这边的情况是远程有一个web始终连着,为了免得每天还要去启动那个web服务,我就采用了这个做法,只删除表,这样不会断开连接,注意,这个web只是白天在用。...
Oracle优化Oracle优化Oracle优化Oracle优化Oracle优化Oracle优化
我乃新手,导入数据时走了很多弯路,特发此文,望可帮助像我这样的新手。
linux oracle 远程连接oracle服务器时,客服端机器需要安装imp exp命令才可以操作操作数据库导入/导出数据
基于Oracle的大数据量删除操作性能分析.pdf
Oracle查询的优化技巧,对大数据量查询的时候可以节省不少时间。
oracle imp exp 命令详解 oracle imp exp 命令详解 oracle imp exp 命令详解 oracle imp exp 命令详解 oracle imp exp 命令详解
Oracle表删除大量数据(千万)后查询变慢问题(原因分析)
Oracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp....
很不错的Oracle大数据量数据导入导出示例
基于Oracle导入数据的imp详细学习资料,注明:不是本人所写,我也不知道从哪弄到的!
Oracle SQL性能优化技巧大总结