A stored procedure was running slowly so I took the code, removed the
subselect and included a join, then took the max and included as part
of a correlated subquery.
The result is below, however, this is no improvement over the original.
An advice would be greatly appreciated.
SELECT FSALT.FUNDING_L INE_TYPE_ID,
A.PAYMENT_PERIO D_ID,
A.CASH AS CASH,
A.VOLUME AS VOLUME
FROM ACTUALS A
INNER JOIN (SELECT MAX(COLLECTION_ PAYMENT_PERIOD_ ID) AS CPP FROM
ACTUALS ACT WHERE COLLECTION_PAYM ENT_PERIOD_ID<= 456) AS O ON O.CPP =
A.COLLECTION_PA YMENT_PERIOD_ID
INNER JOIN FS_ACTUAL_LINE_ TYPES FSALT ON FSALT.FS_ACTUAL _LINE_TYPE_ID =
A.FS_ACTUAL_LIN E_TYPE_ID
INNER JOIN PAYMENT_PERIODS PP ON PP.PAYMENT_PERI OD_ID =
A.PAYMENT_PERIO D_ID
WHERE
A.ORG_ID=24771
AND A.LSC_ORG_ID=58 16
AND PP.FUNDING_STRE AM_ID=5
AND PP.FUNDING_PERI OD_ID=6
GROUP BY
FSALT.FUNDING_L INE_TYPE_ID,
A.PAYMENT_PERIO D_ID,
A.CASH,
A.VOLUME
subselect and included a join, then took the max and included as part
of a correlated subquery.
The result is below, however, this is no improvement over the original.
An advice would be greatly appreciated.
SELECT FSALT.FUNDING_L INE_TYPE_ID,
A.PAYMENT_PERIO D_ID,
A.CASH AS CASH,
A.VOLUME AS VOLUME
FROM ACTUALS A
INNER JOIN (SELECT MAX(COLLECTION_ PAYMENT_PERIOD_ ID) AS CPP FROM
ACTUALS ACT WHERE COLLECTION_PAYM ENT_PERIOD_ID<= 456) AS O ON O.CPP =
A.COLLECTION_PA YMENT_PERIOD_ID
INNER JOIN FS_ACTUAL_LINE_ TYPES FSALT ON FSALT.FS_ACTUAL _LINE_TYPE_ID =
A.FS_ACTUAL_LIN E_TYPE_ID
INNER JOIN PAYMENT_PERIODS PP ON PP.PAYMENT_PERI OD_ID =
A.PAYMENT_PERIO D_ID
WHERE
A.ORG_ID=24771
AND A.LSC_ORG_ID=58 16
AND PP.FUNDING_STRE AM_ID=5
AND PP.FUNDING_PERI OD_ID=6
GROUP BY
FSALT.FUNDING_L INE_TYPE_ID,
A.PAYMENT_PERIO D_ID,
A.CASH,
A.VOLUME
Comment