How do you optimize a slow-running SQL query that involves multiple joins across large transaction tables?