Есть ли способ, которым этот запрос может быть оптимизирован? - PullRequest
0 голосов
/ 30 мая 2018

Ниже приведен мой запрос, и есть ли способ оптимизировать мой запрос, чтобы снизить его стоимость

К вашему сведению: уже созданы индексы для 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 голосов
/ 31 мая 2018

Приведенный ниже индекс имеет хорошие шансы ускорить ваш запрос:

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

Пожалуйста, предоставьте план выполнения ДО и ПОСЛЕ того, как вы добавили этот индекс.

...