在客户端中…请发布您从数据库中获得的实际错误消息。我认为我遇到的主要问题是通过SQL Squirrel运行查询,而不是直接在db环境中查询。换了这个,效果很好。你试过比1000块更小的块吗?您也可以只使用一个idstoupdate表,并将相应的where子

在客户端中…请发布您从数据库中获得的实际错误消息。我认为我遇到的主要问题是通过SQL Squirrel运行查询,而不是直接在db环境中查询。换了这个,效果很好。你试过比1000块更小的块吗?您也可以只使用一个idstoupdate表,并将相应的where子,sql,db2,memory-efficient,Sql,Db2,Memory Efficient,在客户端中…请发布您从数据库中获得的实际错误消息。我认为我遇到的主要问题是通过SQL Squirrel运行查询,而不是直接在db环境中查询。换了这个,效果很好。你试过比1000块更小的块吗?您也可以只使用一个idstoupdate表,并将相应的where子句添加到子查询中。这可能是硬件问题(如中所述,还不够),因为我可以在129mil行表上运行等效语句(instantaneuos响应)。另外,请告诉我们您在clients中的id上有一个索引……请发布您从数据库中获得的实际错误消息。我认为我遇到的


客户端中
…请发布您从数据库中获得的实际错误消息。我认为我遇到的主要问题是通过SQL Squirrel运行查询,而不是直接在db环境中查询。换了这个,效果很好。你试过比1000块更小的块吗?您也可以只使用一个
idstoupdate
表,并将相应的
where
子句添加到子查询中。这可能是硬件问题(如中所述,还不够),因为我可以在129mil行表上运行等效语句(instantaneuos响应)。另外,请告诉我们您在
clients
中的
id
上有一个索引……请发布您从数据库中获得的实际错误消息。我认为我遇到的主要问题是通过SQL Squirrel运行查询,而不是直接在db环境中查询。edwardmlyte:这种更新的另一种方法是使用语句。它是DB2的一个相对较新的特性——我相信它是在DB28.2中引入的。MERGE语句可能是其他人了解您意图的最清晰的方式。虽然这对于您的需求来说可能有些过分,但了解它是一个很好的模式。@edwardmlyte这种更新的另一种方法是使用语句。它是DB2的一个相对较新的特性——我相信它是在DB28.2中引入的。MERGE语句可能是其他人了解您意图的最清晰的方式。虽然这对于你的需求来说可能有些过分,但这是一个很好的模式。
update clients
set col1='1', col2='y'
where id in
(select id from idstoupdate)
dbHandle = sqllib->open_connection(database, user, password) 
select_statement = dbHandle->prepare('SELECT id FROM idstoupdate')
update_statement = dbHandle->prepare('UPDATE clients SET col1=?, col2=? WHERE ID=?')
resultset = statement->execute(select_statement)

foreach (row in resultset) {
  id = row.getColumn('id')
  update_statement->execute('1','2',id) 
}

dbHandle->disconnect();  
      UPDATE table1 t1
         SET (t1.field1, t1.field2) = 
             (
               SELECT t2.field1, 
                      t2.field2
                 FROM table2 t2
                WHERE t1.joinfield = t2.joinfield 
                  AND t2.criteriafield = 'qualifier'
             )
       WHERE EXISTS 
             ( 
               SELECT 1 
                 FROM table2
                WHERE t1.joinfield = table2.joinfield 
                  AND t2.criteriafield = 'qualifier'
             )    
      UPDATE clients t1
         SET t1.col1 = '1', col2 = 'y' 
       WHERE EXISTS 
             ( 
               SELECT 1 
                 FROM idstoupdate t2
                WHERE t1.id = t2.id 
             )