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

语句很简单,包装在一个函数中,之前一直运行的很好,今天突然就出现了异常,本来一直运行时间在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

2同行回答

drdb2drdb2系统工程师se
CBO选了cost低的那个index scan。可能stats不很准确,可以试着重新gather下stats显示全部

CBO选了cost低的那个index scan。

可能stats不很准确,可以试着重新gather下stats

收起
互联网服务 · 2016-03-19
浏览1376
hwerthwert数据仓库工程师北京文思海辉技术有限公司
index range scan 范围扫描,返回多行记录,索引是有序的,我分析可能是IN(\'a\',\'b\')造成性能低下的,Count()函数执行顺序完成后应该是很快的,你把建索引的列,显示下。显示全部

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

收起
软件开发 · 2016-03-18
浏览1370

提问者

星陨无痕
技术经理北京世纪东方国际旅行社
擅长领域: Linux关系型数据库服务器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2016-03-18
  • 关注会员:3 人
  • 问题浏览:2747
  • 最近回答:2016-03-19
  • X社区推广