dblink相关的一个非常异常的问题,请大神指点!!!此库为10.2.0.3 ,aix 系统。在建库时,当时类似dblink导库程序一个小时可以导入几十万数据,现在6个小时,导入6000条。在排查原因时,发现以下一些非常异常的情况  :
 
一、目前具体现象:
1、测试语句如下:
select *
  from aa@jzz a, bb@jzz b
where a.id=b.id--单独查询很快,全部展现出来,也不到1分钟,使用plsql developer
2、若
create table xxx as select ...
--则在7,8分钟才能建立完成。
3、而且,
create table xxx as select ... and rownum<1
--也要3分钟
4、xxx 建好后
create table xxx2 as select * from   xxx ;---xxx空表,很快
 
二、在出现此现象前,还出现一些异常现象:
1、当前用户默认的临时表空间时TS_TEMP。而系统的临时表空间是temp.
在create table xxx as select ...时,等很久后报错无法扩展temp。
2、怀疑原临时表空间存在问题,新建临时表空间TS_TEMP2
create temporary tablespace TS_TEMP2
TEMPFILE '/oradata/TS_TEMP2.dbf' size 1024M
autoextend on 
next 512M maxsize 16000M;
--EXTEND MANAGEMENT LOCAL;--加上此选项报错:invalid option for create tablespace ,不加则通过。
                                           --而在win11g、win10g、redhat10g都可以正常通过
3、将此新建临时表空间TS_TEMP2,并修改为默认临时表空间后,则没有1的问题。

解决方案 »

  1.   

    更有可能是因为dblink 在不同的情况下执行计划不一样导致(select,ctas,where)这些情况下,dblink的执行计划都不一样根据以前的经验,如果是同一个dblink,你可以先通过查询条件,在本地创建一个表,然后dblink直接访问改变创建一个远程的表,这样不会有问题
      

  2.   

    但是我在create的时候加上firstrow的hint也没有效果。先建表再插入,我也试了,但是一样很慢。
      

  3.   

    但是,本地查询很快,但是写表却很慢,是不是可以排除dblink的问题呢