I Need to optimize my query it takes 36 sec to process it . Pls help me out. This is my query in oracle
Select unique api_WEEKLY.country
From api_WEEKLY INNER
JOIN USERPROFILE ON api_WEEKLY.REGION = NVL(USERPROFILE.REGION,api_WEEKLY.REGION)
AND api_WEEKLY.Category = NVL(USERPROFILE.SECTOR,api_WEEKLY.Category)
AND api_WEEKLY.MRP_DRP_CONTROLLER = NVL(USERPROFILE.MRP_DRP_CONTROLLER,api_WEEKLY.MRP_DRP_CONTROLLER)
AND api_WEEKLY.TDC_VAL = NVL(USERPROFILE.TDC_VAL,api_WEEKLY.TDC_VAL)
AND api_WEEKLY.PLANT = NVL(USERPROFILE.PLANT,api_WEEKLY.PLANT)
AND api_WEEKLY.MATERIAL = NVL(USERPROFILE.MATERIAL,api_WEEKLY.MATERIAL)
AND api_WEEKLY.SUBSECTOR = NVL(USERPROFILE.SUBSECTOR,api_WEEKLY.SUBSECTOR)
AND api_WEEKLY.COUNTRY = NVL(USERPROFILE.COUNTRY,api_WEEKLY.COUNTRY)
WHERE USERPROFILE.USER_ID = 'sheikh.a' ;
and
To replace the NVL
functions you can try:
From api_WEEKLY a
INNER JOIN
USERPROFILE u
ON ( u.REGION IS NULL OR a.REGION = u.REGION )
AND ( u.SECTOR IS NULL OR a.Category = u.SECTOR )
...
WHERE u.USER_ID = 'sheikh.a'