【问题标题】:How TO Delete Large Amount Of rows in online table informix Db如何删除在线表informix Db中的大量行
【发布时间】:2015-01-05 06:14:07
【问题描述】:

我有一个大型在线表(每天 1300 万行),我想将昨天的行移到另一个表并从在线表中删除。

我测试了一个方法:

1 - 从表顶部按行选择 100000 行并插入到另一个临时表。 (预计时间:0.87s)

2 - 按临时表映射将选定行插入第二个表。 (预计时间:1m12.59s)

3 - 通过临时表映射从第一个(在线)表中删除选定的行(估计时间:5m39.38s ->太长了请帮帮我)。 Informix 12.10

【问题讨论】:

    标签: informix


    【解决方案1】:

    在启用SET EXPLAIN ON 的情况下运行您的查询,并确认优化器正在按照您假设的方式执行缓慢的步骤。如果不是,您可能需要应用优化器指令或调整索引策略。 (记住索引越多,需要修改的页面就越多。)

    如果INSERT 然后DELETE 操作耗时太长,使用基于表达式的分片是否可行?这将使您可以选择DETACH 昨天的片段,并将其附加到离线表中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      相关资源
      最近更新 更多