DB2从另一个表更新一个表

时间:2014-05-15 08:15:25

标签: java jdbc db2

我有一张桌子说" table1" 有大量数据说 400K记录,我有另一张桌子&#34 ; table2" 也有大量数据说 6000K 。两个表都有几乎相同的列说" col1" " COL2" " COL3"

在我的应用程序中,一个批次运行并更新了" table1"的400K记录。现在我需要为这些400K记录更新" table2" 。我需要在块中更新" table2" ,以便" table2"在更新时不会被绞死。

两个表都有行级锁定。

请告诉我这是最好的方法。

1 个答案:

答案 0 :(得分:0)

每次DB2对行执行修改时,RDBS都会放置两个锁:

  • 表中的一个意图eXclusive
  • 行上的更新或eXclusive锁。

如果没有事先对行进行锁定,则无法修改行。

您可以通过锁定表来减少锁定数量,但这会降低并发性。

alter table xxx locksize table

此外,当表上有很多行锁时,它们会“升级”,并且会在表格中放置相同的类型锁。

所以,你得到的是Row锁,但这是正常的。

有关隔离的更多信息,您可以在DeveloperWorks上查看本教程:http://www.ibm.com/developerworks/data/tutorials/db2-cert6106/index.html?ca=dat