最近一个星期ETL无论在凌晨或是在中午的JOB执行过程中经常卡住,导致不能按时完成系统引擎的运行,对业务产生影响。
通过生成AWR报告,发现有三条SQL消耗大量的CPU,而且还没有执行完成被终止的。如图
第二条更是占满了CPU资源,这无疑是导致卡住的原因,查看执行计划,是因为SAP_MAPL表扫描20多万条数据但是走全表扫描
经检查该表没有为MATNR字段建索引,为该表的MATNR字段建个普通的索引
CREATE INDEX IDX_MATNR ON SAP_MAPL(MATNR);
再观察执行计划
前后对比很明显,就是因为没有建索引导致该SQL一直不停的消耗CPU资源。