从DB2增量提取

时间:2014-04-09 08:26:26

标签: sql db2

从上次选择(或某个指定时间)以来,仅从DB2表中选择插入/更新的行的最有效方法是什么?表中没有允许我们轻松完成此操作的字段。 我们正在从表中提取数据以用于报告,现在我们必须每次都提取整个表,这会导致严重的性能问题。 我找到了关于如何仅选择在最后一天更改的行的示例:

SELECT * FROM ORDERS 
  WHERE ROW CHANGE TIMESTAMP FOR ORDERS > 
    CURRENT TIMESTAMP - 24 HOURS;

但是,我不确定这会有多高效,因为表格很大。 是否有其他方法可以仅选择更改的行,这可能更有效?

我还找到了名为ParStream的解决方案。这似乎可以加快对数据的严格查询,但我无法找到任何有用的文档。

2 个答案:

答案 0 :(得分:0)

我建议这些选择:

  • 您可以使用更改数据捕获,这将自动重播对其他数据源的修改。
  • 通常,select语句不能保证行的顺序。这意味着您无法使用没有时间参考的选择来检索最新的。因此,您必须有一个时间列才能检索最新的。您可以跟踪全局变量中的最新行,然后下次检索时间大于该变量的行。如果要提高性能,可以将表置于追加模式,这样新行就会在一起。在这个时间列上保留一个索引可能会很昂贵,但是当你需要提取行时它会加速(没有表扫描)。

答案 1 :(得分:0)

如果您的服务器是 DB2 for i ,请使用数据库日记功能。您可以按时间段或期刊接收者的日记帐分录号提取插入记录的图像。然后可以将数据条目复制到目标文件。