【问题标题】:How to decrease deletion time in IBM db2如何减少 IBM db2 中的删除时间
【发布时间】:2020-12-18 06:17:19
【问题描述】:

我们正在使用 IBM db2,尝试使用通过 java 代码调用的存储过程从不同的表中删除 200000 条数据。 删除需要 75 多个小时,建议优化删除时间的方法。 我们无法停止删除日志。 我们不能使用截断功能。

【问题讨论】:

  • 您有 DB2-DBA 吗?这是一个常见问题解答。任何称职的 DBA 都将能够确保优化 DELETE 语句的访问计划、优化 Db2 服务器日志记录配置、优化 Db2 服务器的 I/O 设置配置。这不是编程。它是管理和配置能力。

标签: database db2 sql-delete


【解决方案1】:

这样的事情是一种方式

/*
 * Example of deleting X rows of data at a time from a table to avoid e.g. transaction log full on row organized talbes
 * 
 */

BEGIN
    DECLARE DONE  BOOLEAN DEFAULT FALSE;  
    --
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' BEGIN SET DONE = TRUE; END;
    --
    WHILE NOT DONE
    DO
        DELETE FROM (SELECT * FROM MY_TABLE WHERE COL1 = 'A' FETCH FIRST 20000 ROWS ONLY)
        COMMIT;
    END WHILE;
END

您还可以考虑使用 MDC 表来允许“rollout”删除或其他物理设计优化

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 2010-10-23
    • 1970-01-01
    相关资源
    最近更新 更多