DB2 AS400/IBM ISeries Triggers/On 文件更改
DB2 AS400/IBM ISeries Triggers/On File Change
寻找最佳实践来随着时间的推移获取数据的 DELTA。
没有可用的时间戳,无法编程时间戳!
目标:随着时间的推移获取所有字段的所有文件的差异。只需要主键作为输出。 我还需要这个 15 分钟的数据更改间隔
示例:
客户文件有50个columns/fields,如果任何字段发生变化我想要另一个文件来记录主键。或任何记录客户文件中发生更改的内容。
问题:
我不确定触发器是否可行,因为与触发器相关的开销很大。
任何人都可以在考虑开销和性能的情况下建议 DB2 增量的最佳实践吗?
您是否查看过记录文件和评估日志接收者?
我不确定你为什么认为触发器有很多开销,根据我的经验,它们非常快,但正如大卫建议的那样,你可以记录你想要跟踪的文件,然后分析日志接收者。
要打开日记功能,您需要执行三个步骤:
- 使用
CRTJRNRCV
创建接收器
- 使用
CRTJRN
为接收者创建日志
- 使用
STRJRNPF
开始记录文件。您将需要保留 *BEFORE 和 *AFTER 图像以检测更新时的变化,但您可以省略 *OPNCLS 记录以保存一些 space.
完成此操作后,您还可以使用承诺控制来管理交易!但是,您现在必须管理这些接收器,因为它们使用大量 space。您可以通过在 CRTJRN
命令上使用 MNGRCV(*SYSTEM)
来做到这一点。我怀疑您会希望阻止系统自动删除旧接收器,因为这可能会导致您在系统更改接收器时错过一些更改。但这意味着您必须在完成旧接收器后自行删除它们。我建议等待一两天以删除旧接收器。这可能是一个通宵的过程。
要读取日志接收器,您需要使用 RTVJRNE
(检索日志条目)让您将日志条目检索到变量中,或使用 DSPJRN
(显示日志)让您 return 日志条目到显示器、打印机文件或 *OUTFILE。然后可以使用 ODBC 或 SQL 或您想要处理的方式读取 *OUTFILE。您可以按文件和类型筛选要接收的日记条目。
寻找最佳实践来随着时间的推移获取数据的 DELTA。
没有可用的时间戳,无法编程时间戳!
目标:随着时间的推移获取所有字段的所有文件的差异。只需要主键作为输出。 我还需要这个 15 分钟的数据更改间隔
示例: 客户文件有50个columns/fields,如果任何字段发生变化我想要另一个文件来记录主键。或任何记录客户文件中发生更改的内容。
问题: 我不确定触发器是否可行,因为与触发器相关的开销很大。
任何人都可以在考虑开销和性能的情况下建议 DB2 增量的最佳实践吗?
您是否查看过记录文件和评估日志接收者?
我不确定你为什么认为触发器有很多开销,根据我的经验,它们非常快,但正如大卫建议的那样,你可以记录你想要跟踪的文件,然后分析日志接收者。
要打开日记功能,您需要执行三个步骤:
- 使用
CRTJRNRCV
创建接收器
- 使用
CRTJRN
为接收者创建日志
- 使用
STRJRNPF
开始记录文件。您将需要保留 *BEFORE 和 *AFTER 图像以检测更新时的变化,但您可以省略 *OPNCLS 记录以保存一些 space.
完成此操作后,您还可以使用承诺控制来管理交易!但是,您现在必须管理这些接收器,因为它们使用大量 space。您可以通过在 CRTJRN
命令上使用 MNGRCV(*SYSTEM)
来做到这一点。我怀疑您会希望阻止系统自动删除旧接收器,因为这可能会导致您在系统更改接收器时错过一些更改。但这意味着您必须在完成旧接收器后自行删除它们。我建议等待一两天以删除旧接收器。这可能是一个通宵的过程。
要读取日志接收器,您需要使用 RTVJRNE
(检索日志条目)让您将日志条目检索到变量中,或使用 DSPJRN
(显示日志)让您 return 日志条目到显示器、打印机文件或 *OUTFILE。然后可以使用 ODBC 或 SQL 或您想要处理的方式读取 *OUTFILE。您可以按文件和类型筛选要接收的日记条目。