【问题标题】:DB2 Update one table from another tableDB2 从另一个表更新一个表
【发布时间】:2014-05-15 08:15:25
【问题描述】:

我有一个表说 "table1" 有大量数据说 400K 记录,我有另一个表 "table2"也有大量数据说 6000K。两个表都有几乎相同的列,比如“col1”“col2”“col3”。

在我的应用程序中运行了一批,它更新了“table1”的 400K 记录,现在我需要为这 400K 记录更新 “table2”。我需要在块中更新 "table2" 以便“table2”在更新时不会被挂起。

两个表都有行级锁。

请告诉我最好的方法是什么。

【问题讨论】:

  • 问题是什么?如何分块更新?或者如何识别table2中的400k条记录?

标签: java jdbc db2


【解决方案1】:

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

  • 在餐桌上独占一个意图
  • 更新行或排他锁。

如果没有事先在行上加锁,就无法修改行。

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

alter table xxx locksize table

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-15
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多