DB2 AS400 / IBM ISeries触发器/文件更改

时间:2018-04-11 16:56:56

标签: db2 oledb ibm-midrange db2-400

寻找获得数据DELTA的最佳实践。

没有可用的时间戳,无法编制时间戳!

目标:随着时间的推移,获取所有字段的所有文件的差异。只需要主键作为输出。 此外,我需要15分钟的数据更改间隔

实施例: 客户文件有50列/字段,如果有任何字段更改我想要另一个文件来记录主键。或任何记录客户文件中更改发生的内容。

问题: 我不确定触发器是否可行,因为触发器会产生大量开销。

考虑到开销和性能,有人可以建议一段时间内DB2 deltas的最佳实践吗?

2 个答案:

答案 0 :(得分:1)

您是否考虑过记录文件并评估日记接收器?

答案 1 :(得分:1)

我不确定为什么你认为有很多与触发器相关的开销,根据我的经验,它们非常快,但正如David建议的那样,你可以记录你想要跟踪的文件,然后分析期刊接收机。

要启用日记功能,您需要执行以下三个步骤:

  1. 使用CRTJRNRCV
  2. 创建接收器
  3. 使用CRTJRN
  4. 为接收者创建日记
  5. 使用STRJRNPF开始记录文件。您需要保留* BEFORE和* AFTER图像以检测更新时的更改,但您可以省略* OPNCLS记录以节省一些空间。
  6. 执行此操作后,您还可以使用承诺控制来管理交易!但是,您现在必须管理这些接收器,因为它们占用了大量空间。您可以在MNGRCV(*SYSTEM)命令上使用CRTJRN来执行此操作。我怀疑你会想要阻止系统自动删除旧接收器,因为这可能会导致你在系统更改接收器时错过一些更改。但这意味着当你完成它们时你将不得不自己删除旧的接收器。我建议等一两天删除旧接收器。这可能是一夜之间的过程。

    要阅读期刊接收者,您需要使用RTVJRNE(Retreive日记帐分录),它可以将日记帐分录检索到变量,或DSPJRN(显示日记帐),以便您将日记帐分录返回到显示器,打印机文件或* OUTFILE。然后可以使用ODBC或SQL读取* OUTFILE,或者您想要处理它。您可以按文件和类型过滤要接收的日记帐分录。