对于db2表的百万条记录,将字段更新为空白

时间:2015-03-05 09:16:56

标签: db2 cobol utility

需要使用空格更新表中所有行的字段。 该表有大约100万条记录。请尽可能以最短的处理时间提供最好的方法。 感谢

2 个答案:

答案 0 :(得分:1)

什么版本和平台?我看到了一个COBOL标记,所以我假设DB2 for z / OS或DB2 for IBM i。

我很难相信卸载/重装,如上所述在任何平台上都是最好的。因为它只涉及I / O的两倍作为简单更新。

在DB2 for IBM i(又名AS / 400,iSeries)上......我知道卸载/重新加载不会更快。以下内容适用于DB2 for i。

1)简单UPDATE MYTBL SET MYCOL = ' ' WITH NC; ...只要文件 NOT 记录,或者您可以关闭该表的日记记录足够长的时间来运行更新。在旧的,有点小的515运行7.1,我可以在13秒内更新400K行。我希望在不到35秒的时间内更新1M。

2)如果您绝对无法停止日志记录,那么您的下一个最快的方法是使用COBOL或RPG记录级别访问(RLA又称本机I / O)。确保您在到达顺序中阅读表格,并在承诺控制下打开它。您还需要在X个记录之后提交更改。其中X = 128KB /(行的大小)向下舍入。

另一个考虑因素是您要更新的列是否用于索引或键控逻辑。您不希望系统更新每个记录更新的访问路径。如果是索引,则最简单的方法是删除索引并在更新文件后重建索引。如果是逻辑,则可以在更新之前使用RMVM删除该成员,并在使用ADDLFM进行更新后重新添加该成员。

答案 1 :(得分:0)

使用update命令会花费大量时间和CPU成本。最好的方法是卸载文件中的所有数据。使用cobol程序更新字段的值 使用LOAD REPLACE加载数据。

注意 - >请在此之前备份表格数据