相关疑难解决方法(0)

db2 中的批量更新比单个更新快吗?

我有一个包含 10 列的表,在该表中我有数千/数百万行。在某些情况下,我想一次更新超过 10K 条记录。目前我的场景代码按顺序工作,

for i in (primary key ids for all records to be updated)
     executeupdate(i)
Run Code Online (Sandbox Code Playgroud)

我认为不是运行相同的查询 10K 次,而是将所有 id 添加到一个字符串中并运行一个更新查询,例如,

executeupdate(all ids) 
Run Code Online (Sandbox Code Playgroud)

实际的数据库查询可以是这样的,

假设我有像这样的主键 ID,

10001,10002,10003,10004,10005
Run Code Online (Sandbox Code Playgroud)

所以在第一种情况下我的查询会像

update tab1 set status="xyz" where Id="10001"
update tab1 set status="xyz" where Id="10002"
update tab1 set status="xyz" where Id="10003"
update tab1 set status="xyz" where Id="10004"
update tab1 set status="xyz" where Id="10005"
Run Code Online (Sandbox Code Playgroud)

我的批量更新查询将是这样的,

update tab1 set status="xyz" where id in ("10001","10002","10003","10004","10005")
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我是否会通过批量更新获得任何性能改进(执行时间),或者总查询执行时间将与每个记录索引扫描和更新发生的时间相同?

注意:我使用 DB2 9.5 作为数据库

谢谢。

sql database db2

2
推荐指数
1
解决办法
7096
查看次数

标签 统计

database ×1

db2 ×1

sql ×1