Самостоятельное соединение SQL занимает слишком много времени для выполнения - PullRequest
0 голосов
/ 24 марта 2020

Ниже SQL требуется слишком много времени для выполнения. Не знаю, где я делаю неправильно, но да, получая правильный результат. Могу ли я еще упростить это sql. Это oracle дБ, а таблица jmc_job_step содержит огромные записи.

select *
 from
        jmc_job_run_id jobrunid0_ 
    inner join
        jmc_job_step jobsteps1_ 
            on jobrunid0_.id=jobsteps1_.job_run_id
    where
        (
            jobsteps1_.creation_date in (
                select
                    min(jobstep2_.creation_date) 
                from
                    jmc_job_step jobstep2_ 
                where
                    jobrunid0_.id=jobstep2_.job_run_id 
                group by
                    jobstep2_.job_run_id ,
                    jobstep2_.job_step_no
            ) 

            )
            or jobsteps1_.job_step_progress_value in (
                select
                    max(jobstep3_.job_step_progress_value) 
                from
                    jmc_job_step jobstep3_ 
                where
                    jobrunid0_.id=jobstep3_.job_run_id 
                group by
                    jobstep3_.job_run_id ,
                    jobstep3_.job_step_no
            )
        ) 
    order by
        jobrunid0_.job_start_time desc

1 Ответ

0 голосов
/ 24 марта 2020

Это бесполезно; он говорит: «Мне все равно, что содержат эти столбцы», но - пока - вы предоставляете ядру базы данных проверять эти значения в любом случае.

    (
        upper(jobrunid0_.tenant_id) like '%'|| null
    ) 
    and (
       upper(jobrunid0_.job_run_id) like '%'||null||'%'
    ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...