DB2挂起日志记录

时间:2014-03-24 17:49:41

标签: logging transactions db2 db2-luw

在Windows 2008上运行DB2 9.7.5 LUW。我每小时通过WAN从MS SQL 2008服务器传输数据。我从MS SQL中读取数据,将数据和批处理插入解析到DB2中的工作表中,然后在DB2中将工作表中的数据合并到主表中。合并完成后,我清除工作表以准备下次加载。我注意到我的日志文件非常大。由于db会话在数据交换期间是打开和关闭的,因此临时表不适合,因此使用工作表。数据由我制作的java应用程序传输。

我不需要记录工作表事务。我从IBM那里读过这个article 并发现日志记录不会在创建表时在同一工作单元中进行。

使用创建表...暂时不记录 ALTER TABLE ... NOT LOGGED INITIALLY 真的有效吗?根据我的理解,一旦你创建了表,在第一次提交后开始记录?

我是否每次都需要在未记录的情况下创建表,然后使用未记录的alter table清除它?还有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

您不需要每次都创建表格。在将数据插入到同一工作单元(事务)中的表之前,您发出ALTER TABLE...NOT LOGGED INITIALLY

您没有说明如何清理工作台;我希望您使用TRUNCATE TABLE语句,这比删除表记录和最小化日志记录更有效。

答案 1 :(得分:0)

您最初不需要更改表格。你只需要每次都使用alter table tablename激活它而不是最初记录。