It is usually a particular recordset with a slow query that is the culprit and you can usually re-write it, or index the tables better to speed it up.
I usually echo the current time at key points before and after recordsets to narrow down the slow one and then start by indexing joined fields in the database and if it is still slow then I look at the query and figure out how to speed it up by maybe breaking it into other queries or removing nested select statements to use joins instead.