有没有办法优化此查询?

时间:2018-05-30 04:27:58

标签: mysql sql query-optimization

以下是我的查询,有没有办法优化我的查询,以便降低成本

仅供参考:已经在JTASK.JOBHANDLE和JLIST.HANDLE上创建了索引

SELECT JLIST.*, 
       JTASK.jtstatus   LATESTTASKSTATUS, 
       JTASK.jtruncount JOBRUNCOUNT, 
       JTASK.objecthandle 
FROM   esm_n_joblist JLIST 
       LEFT OUTER JOIN (SELECT JT1.jobhandle, 
                               JT1.taskstatus   JTSTATUS, 
                               JT2.rc           JTRUNCOUNT, 
                               JT1.objecthandle objecthandle 
                        FROM   esm_n_jobtasklist JT1, 
                               (SELECT Count(DISTINCT runid) RC, 
                                       jobhandle             JH, 
                                       Max (starttime)       MAXT 
                                FROM   esm_n_jobtasklist 
                                GROUP  BY jobhandle) JT2 
                        WHERE  JT1.jobhandle = JT2.jh 
                               AND JT2.maxt = JT1.starttime) JTASK 
                    ON JLIST.handle = JTASK.jobhandle; 

以下是查询的执行计划

enter image description here

1 个答案:

答案 0 :(得分:1)

以下索引很有可能加快查询速度:

create index ix_jtl1 on esm_n_jobtasklist (jobhandle, starttime, runid);

请在添加此索引之前和之后提供执行计划。