Best practices to solve Scanned Objects / Returned Alerts

Query Targeting: Scanned Objects / Returned has gone above 1000

We have this alert configured for our cluster and it regularly triggers during a normal day. When it triggers I go to the Profiler to see if anything stands out but this only shows ones that took more than 100ms so it tends not to have too many. What are the best ways to find the offending queries ?

Also, slightly related but the Performance Advisor gives us zero advice (it hasn’t in months). I’m guessing the excessive scanned objects is down to poor index design on our part. It would be nice if the Advisor could help with this.