1) Tools -> Advisor -> Timing Optimizatino Advisor.
2) Partitions generally hurt performance, and minimally have a neutral affect. They can preserver performance, which allows two things:
- If a hierarchy only passes timing after a seed sweep, say 1/5 compiles, then you can preserve the one that meets timing
- If a hierarchy only meets timing with every setting cranked up(specifically physical synthesis), you can lock down that block and turn off a lot of options for the rest of your design, getting faster compile times(but it doesn't improve the performance). Both of these are somewhat complex steps.
3) I would use TimeQuest to diagnose what is failing, try to figure out why, and work from there. General "catch-alls" of performance improvement often waste time. Fix what's broke and proceed. And don't be afraid of RTL, as those can have the most dramatic improvements that are consistently repeatable.