求助:informix 如何快速关联更新大量数据

时间:2021-11-29 14:54:04
现在有table1 table2 数据量大约每隔表十万左右
 table1字段有name,city,adress
table2 字段有name,city_id,street等
我现在想把table1的name,city与table2的name,city_id 关联将table1中的adress更新到table2的street中
我写的sql为:
 update table2 set street=
 (
    select distinct adress from table1
    where table2.name=table1.name and to_char(city_id)=table1.city
  )
  我执行了 速度非常慢  好几个小时了还没完事   请问各位大侠有什么快速更新的方法吗

8 个解决方案

#1


table2 name city_id
table1 name city
建立索引没有

#2


没有啊

#3


建立索引

#4


建立索引以后呢  

#5


table1 and table2 的结构 ?

#6


在Informix中没有建立索引,速度是非常慢的,超过四万笔的数据,最好不要用SQL语句一次更新,请写脚本用批处理方式进行。或者写小程序更新。

#7


高效的方法:建议提取表2所有字段,加表1的addrss字段,直接生成新表:
1、创建你需要的新表;
2、insert into 新表
   select table2.name, table2.city, table1.address, table2.需要的字段 ......
   from table2, table1
   where table2.name=table1.name and to_char(city_id)=table1.city 
   ;
 

#8


注意源表关联字段要建索引,最后删除不需要的表,再对新表更名,重建索引

#1


table2 name city_id
table1 name city
建立索引没有

#2


没有啊

#3


建立索引

#4


建立索引以后呢  

#5


table1 and table2 的结构 ?

#6


在Informix中没有建立索引,速度是非常慢的,超过四万笔的数据,最好不要用SQL语句一次更新,请写脚本用批处理方式进行。或者写小程序更新。

#7


高效的方法:建议提取表2所有字段,加表1的addrss字段,直接生成新表:
1、创建你需要的新表;
2、insert into 新表
   select table2.name, table2.city, table1.address, table2.需要的字段 ......
   from table2, table1
   where table2.name=table1.name and to_char(city_id)=table1.city 
   ;
 

#8


注意源表关联字段要建索引,最后删除不需要的表,再对新表更名,重建索引