gpt4 book ai didi

java - 在一个事务中插入大量数据

转载 作者:行者123 更新时间:2023-11-30 07:54:40 28 4
gpt4 key购买 nike

我一直在努力解决架构问题。

我在 DB2 v.9.7 数据库中有一个表,我需要在单个事务中插入约 250000 行,每行 13 列。我特别需要将这些数据作为一个工作单元插入。

简单的 insert intoexecuteBatch 给我:

The transaction log for the database is full. SQL Code: -964, SQL State: 57011

我无权更改事务日志的大小。所以我需要在开发者方面解决这个问题。

我的第二个想法是在所有插入之前使用保存点,然后我发现它只适用于当前事务,所以它对我没有帮助。

有什么想法吗?

最佳答案

您想将大型插入作为单个事务执行,但没有足够的日志空间用于此类事务,也没有增加它的权限。

这意味着您需要将插入分解为多个数据库事务,并在应用程序端管理更高级别的提交或回滚。驱动程序(无论是 JDBC 还是 CLI)中没有任何东西可以帮助解决这个问题,因此您必须编写自定义代码来记录所有已提交的行,并在需要回滚时手动删除它们。

另一种选择可能是通过 ADMIN_CMD() 使用 LOAD 命令系统存储过程。 LOAD 需要更少的日志空间。但是,要使其正常工作,您需要将要插入的行写入数据库服务器上的文件或共享文件系统或可从服务器访问的驱动器。

关于java - 在一个事务中插入大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43895830/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com