Я пытался выполнить соединение по запросу, который работает по большей части, но он действительно медленный. Есть ли лучший способ структурировать этот запрос для оптимизации его производительности.
SELECT DISTINCT(A.EMPLID),E.OPRID,E.OPRDEFNDESC,E.EMPLID,B.JPM_DATE_6,B.JPM_DATE_3,B.JPM_DATE_6,B.JPM_DESCR90 FROM (PS_JOB A LEFT OUTER JOIN PS_NPS_LICCERT_VW B ON A.EMPLID=B.EMPLID),PSOPRDEFN E
WHERE a.EFFDT = (SELECT MAX(e.EFFDT) FROM PS_JOB e
WHERE E.EFFDT <= sysdate
and e.emplid = a.emplid
and e.empl_rcd = A.EMPL_RCD)
AND a.EFFseq = (SELECT MAX(f.EFFseq) FROM PS_JOB f
WHERE f.EFFDT = a.effdt
and f.emplid = a.emplid
and f.empl_rcd = A.EMPL_RCD)
AND A.PER_ORG = 'EMP'
AND a.paygroup not in ('SUM','CWR')
AND A.EMPL_STATUS in ('A', 'L', 'P', 'S')
/
Результат запроса следующий:
OPRID OPRDEFND JPM_DESCR90 B.JPM_DATE_3 JPM_DATE_6 H.DESCR H.LOCATION
jszigeti Julie ELEMENTARY SCHOOL TEACHER 1-Feb-96 South St. 93
jszigeti Julie TEACHER OF THE HANDICAPPED 1-Dec-91 South St. 93
rleon Roger ELEMENTARY SCHOOL TEACHER 1-Jul-92 1-Jun-92 Off-Exec Supt 400
rleon Roger ELEMENTARY SCHOOL TEACHER 1-Jul-93 1-Aug-92 Off-Exec Supt 400
rleon Roger ELEMENTARY SCHOOL TEACHER 1-Aug-92 Off-Exec Supt 400
rleon Roger ELEMENTARY SCHOOL TEACHER 1-Jul-93 Off-Exec Supt 400
rleon Roger PRINCIPAL 1-Jul-98 1-Mar-98 Off-Exec Supt 400
Изображения для плана объяснения для к запросу прилагаются
Снимок экрана1 .
Снимок экрана2
Снимок экрана3