你先试试
select p.inst_name 
   from pmis.pm_om_insts p,pmis.pm_ud_sc_sbxx s 
   where p.inst_id=s.inst_id and t.sbbm=s.sbbm)
 where exists (select 1 from pmis.pm_ud_sc_sbxx c where t.sbbm=c.sbbm
有没有结果并且要多少时间

解决方案 »

  1.   

    select p.inst_name 
       from pmis.pm_om_insts p,pmis.pm_ud_sc_sbxx s,pmis.TS_KZBH_DLQ_SBDA@HR_LINK1 t
       where p.inst_id=s.inst_id and t.sbbm=s.sbbm只需要1秒钟
      

  2.   

    pmis.TS_KZBH_DLQ_SBDA@HR_LINK1 里面有多少条数据就需要多少秒钟,或者还要更长。
      

  3.   

    我用两个表之间关联更新,时间还是满快的。下面的语句没有问题--更新设备公共属性
     update pmis.TS_KZBH_DLQ_SBDA@HR_LINK1 t 
     set(t.xsgdgsbm,
         t.bdsbm,--变电所编码
         t.azdd,--安装地点
         t.jgmc,--间隔名称
         t.eddy,--额定电压
         t.yxdy,--运行电压
         t.yxzt,--运行状态
         t.dlqxh,--型号
         t.ccbh,--出厂编号
         t.ccrq,--出厂日期
         t.tyrq,--投运日期
         t.eddl,--额定电流
         t.tizo,--总重
         t.dxzq,--大修日期
         t.scdxrq--下次大修日期
     )=(select q.xsgdjbm,
               q.bdsbm,
               q.sb_azd,
               q.sb_mch,
               to_number(rtrim(q.sb_eddy,'kV')),
               to_number(rtrim(q.dydj,'kV')),
               q.whzt,
               q.sb_sbxh,
               q.sb_zzbh,
               q.sb_zzrq,
               q.sb_tcrq,
               to_number(trim(q.eddl)),
               q.sb_zz,
               q.sb_dxzq,
               q.sb_sbzjdxrq
         from pmis.pm_ud_sc_sbxx q where t.sbbm=q.sbbm and length(trim(q.eddl))<length('99999') )
     where exists (select 1 from pmis.pm_ud_sc_sbxx c where t.sbbm=c.sbbm);
      

  4.   

    建几个临时表,把需要更新的值和主键记录下来,这样不就省了一个关联查询吗
    另外你可以把exists 替换成in ,因为in 比exists要快