gpt4 book ai didi

java - Teradata 多个连接 INSERT 死锁

转载 作者:行者123 更新时间:2023-12-01 12:26:35 25 4
gpt4 key购买 nike

我创建多个连接并同时批量插入到 myTable 中(多线程)

insertString = "INSERT INTO ... + values + ") "; 
insertTable.addBatch(insertString);
insertTable.executeBatch();
insertTable.clearBatch();

有时它工作正常,但在其他情况下它会挂起。我明白这是因为我正在插入同一个表,所以它被锁定。

如何编写 INSERT 语句使其不锁定表?

是否有任何特殊的交易开始。 。 命令可以防止表被锁定?另外,我很好奇为什么有时它可以正常工作?

PS:我使用的最大连接数是 1024(有时工作正常)

谢谢

最佳答案

1024 session 完全是疯了。您的 DBA 应该为此阻止您的用户。

当您加载具有相同 PI 的多行时,您可能会遇到阻塞 session 。

单行插入是加载数据最慢的方式。批量大小为几千个的单个 session 将优于数十个单行 session (但仅使用一个 session )。

或者如果目标表为空,则切换到 JDBC FastLoad。

检查 http://developer.teradata.com/connectivity/articles/speed-up-your-jdbcodbc-applications

这是临时表吗?

关于java - Teradata 多个连接 INSERT 死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287093/

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