我们的Java程序必须从DB2表中删除大量记录,但它的事务日志不足。使用Java SQL部分数据删除休眠
我们正在努力增加日志空间,但由于内部流程和其他事情......需要一周的时间才能完成。
我们正在寻找临时的方式来一次删除一些记录,而不是全部删除。例如,当我们有1000条记录要删除时,我们希望程序一次删除50条记录,然后执行提交并继续执行下一个50条记录,直到删除所有1000条记录。如果在删除X个记录后删除失败,它仍然没有问题。
我们使用Hibernate。
请求您就如何实现的建议。我正在检查sql中的sqlstate和sqlcode,即使在成功的sql执行情况下,但我的不好,我找不到方法。
这么喜欢,循环做......而(检查完成SQLCODE不是真的)
的缺失应该从Java Web应用程序的用户请求而除了发生,我们不能从后台删除,我们也有一些表约束和删除级联。
为什么不是一次大的批量删除而不是所有的单次删除? – 2014-09-19 14:25:22
@ M.Deinum,如上所述,我们正在用单个批量删除耗尽事务日志空间。 – 2014-09-19 14:26:56
从你的帖子来看,这不是那么明显,但唉。如果你知道你想删除的ID,那么只需将它们以可管理的块拆分即可。您还声明您正在使用hibernate,具体取决于您使用JQL删除记录或检索它们并删除它们或使用SQL将它们删除? – 2014-09-19 14:30:41