在Windows 2008上運行DB2 9.7.5 LUW。我通過WAN從MS SQL 2008服務器每小時傳輸一次數據。我從MS SQL讀取數據,將數據和批處理插入解析到DB2中的工作表中,然後在DB2中將數據從工作表合併到主表中。合併完成後,我清除工作表以準備下一次加載。我注意到我的日誌文件非常大。由於數據交換期間數據庫會話是打開和關閉的,因此臨時表不適用,因此使用工作表。數據由我製作的Java應用程序傳輸。DB2暫停日誌記錄
我不需要記錄工作表事務。我已經從IBM 中讀到這個article,發現日誌不會像創建表時那樣在同一個工作單元中發生。
使用CREATE TABLE ...不是最初LOGGED和ALTER TABLE ...不是最初 LOGGED真的有用嗎?從我的理解,一旦你創建了第一次提交後開始日誌記錄的表?
我是否需要每次創建表時未記錄,然後用alter table not logged清除它?有沒有更好的辦法?
經過一些更多的研究與方向@mustaccio,與試驗和錯誤。我認爲我找到了最佳的行動方式。在我進行批量插入之前,我會調用一個'TRUNCATE TABLE',然後一個'ALTER TABLE ... NOT LOGGED INITIALLY'提交批量插入。從另一個數據庫讀取更多數據。在下一批插入時只需調用「ALTER TABLE ... NOT LOGGED INITIALLY」。繼續這個循環,直到所有數據傳輸完畢。 – GeekyDaddy