我有一张桌子说" table1" 有大量数据说 400K记录,我有另一张桌子&#34 ; table2" 也有大量数据说 6000K 。两个表都有几乎相同的列说" col1" " COL2" " COL3"
在我的应用程序中,一个批次运行并更新了" table1"的400K记录。现在我需要为这些400K记录更新" table2" 。我需要在块中更新" table2" ,以便" table2"在更新时不会被绞死。
两个表都有行级锁定。
请告诉我这是最好的方法。
答案 0 :(得分:0)
每次DB2对行执行修改时,RDBS都会放置两个锁:
如果没有事先对行进行锁定,则无法修改行。
您可以通过锁定表来减少锁定数量,但这会降低并发性。
alter table xxx locksize table
此外,当表上有很多行锁时,它们会“升级”,并且会在表格中放置相同的类型锁。
所以,你得到的是Row锁,但这是正常的。
有关隔离的更多信息,您可以在DeveloperWorks上查看本教程:http://www.ibm.com/developerworks/data/tutorials/db2-cert6106/index.html?ca=dat