DB2数据库如何提高Import性能?

在利用DB2提供的Import命令进行数据导入时,所有的约束都要被验证,所有装载的行都会记入日志,
      且触发器也会被激活,因此在装载大量数据时,Import实用程序的性能会明显低于DB2的Load实用程序,
      为提高Import的性能,可使用下面两种方法:
      1)使用Compound选项
         说明:
         发出导入数据的Import命令时使用Compound选项,如在modified by 语句之后使用compound=n,
         以便将插入语句中的n行记录作为一组一起导入。对比逐行记录插入的方式,这种方式减少了
         网络的通信量。compound的范围为1-100。
         示例:
         db2 connect to dbname
         db2 import from myfile of del modified by compound=100 insert into tabname
      2)使用BIND db2uimpm.bnd文件时加入缓冲区插入选项
         说明:
         使用insert buf 选项绑定Import实用程序以启用缓冲区插入,即对db2uimpm程序包使用insert buf
         选项重新绑定到数据库。
         示例:
         db2 connect to dbname
         db2 bind db2uimpm.bnd insert buf 或(db2 bind db2uimpm.bnd blocking all insert buf)
         db2 import from myfile of del insert into tabname
         
         测试结果:
         E:\>db2 bind db2uimpm.bnd insert buf
             
             行      消息 db2uimpm.bnd
             ------  --------------------------------------------------------------------
                     SQL0061W  绑定程序正在进行中。
                     SQL0031C  打不开文件 "E:\db2uimpm.bnd"。
                     SQL0082C  发生错误,它终止了处理。
                     SQL0092N  因为先前的错误,未创建任何程序包。
                     SQL0091N  绑定结束,具有 "3" 个错误和 "0" 个警告。
         原因:执行这个命令需要将目录切换到IBM\SQLLIB\bnd目录下,从而可找到db2uimpm.bnd
         
      
备注:以上两种方法都可以使Import得性能有较大的提高,且对多数情况下导入数据量都很大的分区式数据库,
      这些方法对于Import性能的提高尤为重要。还存在一种方法来提高Import的性能,修改表的Append on属性,
      具体修改方法:
      alter table tabname append on即可。

猜你喜欢

转载自blog.csdn.net/m0_37604866/article/details/83684741