DB2 import数据导入的skipcount参数使用方法

2014-11-24 17:21:33 · 作者: · 浏览: 0

DB2 import和load比起性能来由于会记录日志,所以通过速度比较慢,并且数据记录太大容易造成事物日志满的问题发生,但有些操作不得不记日志,所以就不得不适用import,不过其有个COMMITCOUNT选项完全可以避免,来指定import多少条记录即提交,有助于及时释放日志:


并且由于及时提交了,所以在运行失败了还可以重新在起点继续进行操作:


db2 "import from tab1.ixf of ixf modified by generatedignore COMMITCOUNT 500000 insert into RCDB2.T_CUST_DTL"


上面我设置每导入50W条记录就提交,然而导入中发现索引表空间不足,会话运行失败:
SQL3306N An SQL error "-289" occurred while inserting a row into the table.
SQL0289N Unable to allocate new pages in table space "RCDB2_INDX_01".
SQLSTATE=5701


查询目前已经成功导入的数据量如下:


db2 select count(*) from RCDB2.T_CUST_DTL with ur


1
-----------
5000000


1 record(s) selected.


这个就可以作为重新导入的起点。


db2 "import from tab1.ixf of ixf modified by generatedignore COMMITCOUNT 500000 SKIPCOUNT 5000000 insert into RCDB2.T_CUST_DTL"


另外还有个参数RESTARTCOUNT N何SKIPCOUNT等效, 跳过前N条记录继续import,想当的方便