码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE SQL优化之ORA-03150&ORA-02055&ORA-02063

时间:2017-10-26 15:17:45      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:ora-03150   ora-02055   ora-02063   oracle   sql优化   

   今天,一实施同事反应,他执行一存储过程,执行到一条含有dblink的insert into select语句时报错:ORA-03150 ORA-02055 ORA-02063,具体报错如图所示:

技术分享

该报错涉及的SQL语句是:

insert into yhjkb@dblink_jkb
  select oae001,
         akb020,
         akc190,
         akc220,
         aae072,
         akc515,
         aka135,
         aae100,
         akc301,
         b.reject_money,
         b.reject_reson,
         b.oper_user_id,
         b.oper_user_name,
         b.oper_date,
         ‘0‘,
         ‘EH‘,
         ‘EH‘,
         sysdate,
         null,
         null
    from KC22 a
   inner join dr_audit b
      on a.oae001 = b.prescription_no
     and b.load_date > (select syncdate from dr_syncdate)
     and a.aae100 = ‘1‘;

以下是优化的处理过程:

1、首先,让其统计了insert into select的select的数据量有3394条,不是太多,但是在执行insert into子查询select的时候过程很长,有10多分钟;

2、查看insert into子查询的sql执行计划,如下:

技术分享

3、让实施同事控制子查询的数据量为1条时,虽然执行时间比较长,但是能够执行成功

4、建议实施同事,根据select子句的where条件对表kc22的字段AAE100创建了索引,索引创建后,子查询语句执行速度明显提升,执行计划如下:

技术分享

5、然后,实施同事再次执行insert into select,2分钟左右成功执行。

问题解决!


本文出自 “清风艾艾” 博客,请务必保留此出处http://3596022.blog.51cto.com/3586022/1976244

ORACLE SQL优化之ORA-03150&ORA-02055&ORA-02063

标签:ora-03150   ora-02055   ora-02063   oracle   sql优化   

原文地址:http://3596022.blog.51cto.com/3586022/1976244

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!