Import和Load 都可以将数据导入到DB2服务器中,但是2者是有很大区别的。
Import 其实执行了SQL 的INSERT 操作。和INSERT 操作一样,Import 执行的时候会激活触发器,所有的约束会强制实现,而且会使用数据库的缓冲池。类似Oracle sql*loader工具的常规路径导入。
Load 工具可以更快的将数据文件导入到数据表中。Load 工具不会与DB2 数据引擎发生交互,所以当使用Load 工具时,不会触发触发器也不会使用缓冲池,而且必须单独实现数据表的约束。Import 工具执行起来比Load 慢是因为它是低层次的数据操作工具,它分
Import 其实执行了SQL 的INSERT 操作。和INSERT 操作一样,Import 执行的时候会激活触发器,所有的约束会强制实现,而且会使用数据库的缓冲池。类似Oracle sql*loader工具的常规路径导入。
Load 工具可以更快的将数据文件导入到数据表中。Load 工具不会与DB2 数据引擎发生交互,所以当使用Load 工具时,不会触发触发器也不会使用缓冲池,而且必须单独实现数据表的约束。Import 工具执行起来比Load 慢是因为它是低层次的数据操作工具,它分
LOAD,BUILD,DELETE 三个阶段对硬盘上的数据页面来进行直接的处理。Load工具类似Oracle sql*loader工具的直接路径导入。
使用load命令,首先要明白当前你要导入的库是否在本地。如果不在本地,就要使用 load client from ...命令,否则load from..即可。无论何时,我们应该优先选用load命令来完成导入数据,因为他的效率比import要高,而且高很多。
如果直接使用import from c:/data.ixf of ixf insert into table.你会发现速度很慢,到被导入的数据达到上千后,明显感觉的到。平均导入100条数据的时候为1分钟左右。
更好的解决办法是使用参数:compound (范围0-100)。
import from c:/data.ixf of ixf modifiry by compound=100 insert into table.平均导入100条数据的时间为1秒。导入效率提高100倍。当然,在导入的过程中你可以100条或1000条左右数据就自动提交一次,看数据量大小。一般控制在3万条以下提交一次适宜。如:import from c:/data.ixf of ixf commitcount 1000 modifiry by compound=100 insert into table