rt

解决方案 »

  1.   

    如果是存储过程的话,可以参考
    使用DBlink有两种:
    1.创建引用远程表的本地过程
    2.创建本地应用程序调用的远程过程
    我们在选择的时候重点就放在最小化必须通过网络发送以解决数据请求的数据量。
    驻留改过程的数据库应该包含在过程操作期间使用的大部分数据。
    例如:
    create or replace procedure procedureName()
    as
    begin
     select * into xxx from tableName@xxxx;
    end;
    去掉存储过程里的@xxxx
    然后在本地调用远程过程
    execute procedureName@xxxx
    这样驻留数据的数据库执行了过程的所有处理。远程过程调用就最小化了完成过程处理所必须的网络流量数。
      

  2.   

    那如何我这个存储过程里用到了本地和远程的数据库中的表的话,使用execute procedureName@xxxx
    这种形式的肯定就不行了吧。
      

  3.   


    肯定不行的。你可以对dblink访问的表,增加管道。
    如:
    select /*+parallel(a,20)*/ * from xx.sss@ddd a;--这样查询速度会快很多。