How do I know if an Execution Plan is “bad”?
Plans are not intrinsically “good” or “bad”. An end user is not going to complain that (for example) “there are too many full table scans”, he is going to complain that “this screen refresh takes a minute, I need it in a second.” If a plan fulfills the user’s need, then it is good enough.