A query running for two hours need not necessarily be bad.

What you probably need to do is, schedule a job that will collect running SQLs and do explain plan on them. Examine these plans to decide what is bad what is not.