Oracle中添加了一个条件后语句慢了100倍,语句仍然是走索引的

语句很简单,包装在一个函数中,之前一直运行的很好,今天突然就出现了异常,本来一直运行时间在0.05左右,现在变成了1,2s直接导致数据库卡死。语句是  select count(CRM_Activity.CRM_Activity_ID)    from CRM_Activity CRM_Activity   where CRM_...显示全部

语句很简单,包装在一个函数中,之前一直运行的很好,今天突然就出现了异常,本来一直运行时间在0.05左右,现在变成了1,2s直接导致数据库卡死。

语句是

  select count(CRM_Activity.CRM_Activity_ID)

    from CRM_Activity CRM_Activity

   where CRM_Activity.Isactive = 'Y'

     and CRM_Activity.Closeresult in ('A', 'B')

     and CRM_Activity.CRM_Lead_ID = 1028910

CRM_Activity.Closeresult in ('A', 'B')这个条件去掉和加上时plsql中f5看的调用资源,运行时间都没有什么大的增长,但是运行时间慢了一百倍。

上图,求大神们指点迷津;

m.png



收起
参与5

查看其它 1 个回答hwert的回答

hwerthwert数据仓库工程师北京文思海辉技术有限公司

index range scan 范围扫描,返回多行记录,索引是有序的,我分析可能是IN(\'a\',\'b\')造成性能低下的,Count()函数执行顺序完成后应该是很快的,你把建索引的列,显示下。

软件开发 · 2016-03-18
浏览1385

回答者

hwert
数据仓库工程师北京文思海辉技术有限公司

hwert 最近回答过的问题

回答状态

  • 发布时间:2016-03-18
  • 关注会员:3 人
  • 回答浏览:1385
  • X社区推广