Greetings all,
We have a complicated statement in DB2 which takes long hour to
complete and we have created most of the indexes. Does anybody knows
how to tune the following statement to optimize the query?
"SELECT AL3.LAB, AL3.DEPARTMENT, AL6.NAME, Count (AL4.ITEM),
AL5.SALES_TERRIOTARY, AL1.DATE_SERVICE
FROM YR2005.REQUESTX AL1, YR2005.RESULTP AL2, YR2005.PANEL AL3,
YR2005.RESULTV AL4, YR2005.DOCTOR AL5, YR2005.DEPT AL6
WHERE (AL2.REQUEST=AL1.RELREC AND AL3.CODE=AL2.PANEL AND
AL3.LAB=AL1.LAB AND AL4.RESULTP=AL2.RELREC AND AL1.DOCTOR=AL5.CODE
AND AL3.DEPARTMENT=AL6.CODE AND AL3.LAB=AL6.LAB) AND ((AL1.LAB LIKE
'%KLG%' OR AL1.LAB LIKE '%OPD%') AND (NOT AL4.ALPHA='/')
AND (AL1.DOCTOR LIKE '%10%' OR AL1.DOCTOR LIKE '%11%' OR AL1.DOCTOR
LIKE '%12%' OR AL1.DOCTOR LIKE '%13%' OR AL1.DOCTOR
LIKE '%14%' OR AL1.DOCTOR LIKE '%15%' OR AL1.DOCTOR LIKE '%16%' OR
AL1.DOCTOR LIKE '%18%' OR AL1.DOCTOR LIKE '%1A%' OR AL1.DOCTOR
LIKE '%21%' OR AL1.DOCTOR LIKE '%23%' OR AL1.DOCTOR LIKE '%24%' OR
AL1.DOCTOR LIKE '%25%' OR AL1.DOCTOR LIKE '%26%' OR AL1.DOCTOR
LIKE '%27%' OR AL1.DOCTOR LIKE '%28%' OR AL1.DOCTOR LIKE '%2A%' OR
AL1.DOCTOR LIKE '%3%' OR AL1.DOCTOR LIKE '%3A%' OR AL1.DOCTOR
LIKE '%3B%' OR AL1.DOCTOR LIKE '%4B%' OR AL1.DOCTOR LIKE '%9%' OR
AL1.DOCTOR LIKE '%ANC%' OR AL1.DOCTOR LIKE '%CCU%' OR AL1.DOCTOR
LIKE '%GICU%' OR AL1.DOCTOR LIKE '%GOT%' OR AL1.DOCTOR LIKE '%HDW%' OR
AL1.DOCTOR LIKE '%ICU%' OR AL1.DOCTOR LIKE '%K4%' OR AL1.DOCTOR LIKE
'%K7%' OR AL1.DOCTOR LIKE '%KK1%' OR AL1.DOCTOR LIKE '%KK2%' OR
AL1.DOCTOR LIKE '%KK3%' OR AL1.DOCTOR LIKE '%KK5%' OR AL1.DOCTOR LIKE
'%KK6%' OR AL1.DOCTOR LIKE '%KK7%' OR AL1.DOCTOR LIKE '%KK8%' OR
AL1.DOCTOR LIKE '%KK9%' OR AL1.DOCTOR LIKE '%KPKK %' OR AL1.DOCTOR LIKE
'%LR%' OR AL1.DOCTOR LIKE '%MH%' OR AL1.DOCTOR LIKE '%MPC%' OR
AL1.DOCTOR LIKE '%P1%' OR AL1.DOCTOR LIKE '%P10%' OR AL1.DOCTOR LIKE
'%P2%' OR AL1.DOCTOR LIKE '%P8%' OR AL1.DOCTOR LIKE '%P9%' OR
AL1.DOCTOR LIKE '%PC%' OR AL1.DOCTOR LIKE '%PICU%' OR AL1.DOCTOR LIKE
'%ROC%' OR AL1.DOCTOR LIKE '%RTC%') AND (NOT AL3.NAME LIKE '%REJ%') AND
AL1.DATE_SERVICE='2005-01-15')
GROUP BY AL3.LAB, AL3.DEPARTMENT, AL6.NAME, AL5.SALES_TERRIOTARY,
AL1.DATE_SERVICE ORDER BY 2"
Your prompt feedback is very much appreciated.