远程连接两个数据库服务器:A、B
    现在服务器A上建了一张表t1(6个字段),t1中的数据都是从服务器B上的t表(30多个字段)中的6个字段copy过来的!
    问题:
        现在A上的t1中又加了一个字段col1,要求col1的值也从B上的t表中取.(B上的t表中存在col1这列和值)。
        t和t1中的数据都是480万条记录。
        
        我使用:
                    update t1
                      set  t1.col1 = (select col1 from t@dblink_cms b where a.id= b.id);
     
       花了70分钟才把480万条数据给更新完(col1和id上都建有索引)
       个人觉得效率太低了!
       
       故想请教各位高手,能提供效率较高的方法吗?
       

解决方案 »

  1.   

    有个建议,你试试将对方整个表考过来,然后在去根据这个临时表进行更新你的表,似乎记得哪里看过用DBLINK不走索引
      

  2.   

    把待更新的表的索引都disable掉,待更新完后在enable之试试
      

  3.   

         能说具体点吗?
         因为两张都是大表,所以我了hash_join(也是不走索引的)     我在select后面加上了 /*+ use_hash(a b)*/.  查看执行计划后,是不走索引了,但效率还是很差!