I take it that SYSDATE and TRANDATE are not directly compatible? Won’t doing a TO_CHAR on the TRANDATE in the WHERE clause will perform a transform on the whole column? Might be more efficient to change that to:
WHERE
TranDate = TO_DATE( TO_CHAR ( SYSDATE, 'DS' ), 'DS' )