update 表1 set 姓名=(select 姓名 from 表2 where 学号=表1.学号)
where exists(select 1 from 表2 where 学号=表1.学号);另可在表1和表2的学号上建索引

解决方案 »

  1.   

    同意楼上各位关于建索引的办法,另外是否可以试一下建立一个新表
    create table T3 as select T2.name, T1...., from T1,T2 where T1.no = T2.no;然后再把表2删掉,把T3改为表2,你觉得怎么样?另外经常改动的表,可以考虑加大PCTFREE参数,可能会有帮助.
      

  2.   

    update 表1 set 姓名=(select 姓名 from 表2 where 学号=表1.学号)关于这个问题,我昨天回去查了资料,的确执行时间太长,有很好的先例建议修改成:update 表1 set 姓名= decode('A','a','B','b'......),这样的话,效率就会非常的高。update 表1 set 姓名=(select 姓名 from 表2 where 学号=表1.学号)
    不仅仅是慢,而且有down掉的可能!呵呵。