[英]Teradata multiple connections INSERT deadlock
我創建多個連接,並同時將批量插入myTable中(多線程)
insertString = "INSERT INTO ... + values + ") ";
insertTable.addBatch(insertString);
insertTable.executeBatch();
insertTable.clearBatch();
有時它可以正常工作,但是在其他情況下則掛起。 我知道這是因為我要插入同一張表,所以它被鎖定了。
如何編寫一個INSERT
語句,使其不鎖定表?
是否有任何特殊的transaction start . .
transaction start . .
可以防止表被鎖定的命令? 另外,我很好奇為什么有時還能正常工作?
PS:我使用的最大連接數為1024(有時工作正常)
謝謝
1024會話完全是瘋狂的。 為此,您的DBA應該阻止您的用戶。
使用相同的PI加載多行時,您可能會遇到阻塞的會話。
單行INSERT是最慢的數據加載方式。 批量為幾千個的單個會話將勝過數十個單行會話(但隨后僅使用一個會話)。
或如果目標表為空,則切換到JDBC FastLoad。
檢查http://developer.teradata.com/connectivity/articles/speed-up-your-jdbcodbc-applications
這是登台桌嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.