通过dblink读取另一个数据库的数据插入到本地表,速度慢,而且每次只是读取一条数据插入本地,然后commit
插入的数据有个字段是blob类型,每一条记录大概20k
网络正常
sql语句大概如下:
insert into local_table 
select * from remote_table@dblink where key_column=value

解决方案 »

  1.   

    通过网络肯定比本地慢,建议批量操作,如
    insert into local_table 
    select * from remote_table@dblink where key_column in (....);
    应该会快不少.
      

  2.   

    是局域网内的两台数据库,每insert一条需要1-4秒,有什么优化的办法吗?
      

  3.   

    先建到本地临时表
    create table tmp as
    select * from remote_table@dblink where key_column=value;insert into local 
    select * from tmp;