I eat out regularly and can't remember exactly the last time I had bad service, so perhaps I'm lucky so far.
However, if it is slow, I will get out of my seat and go directly to the kitchen to get attention from the manager or maitre 'd to see why there is a problem.
Usually, service is slow when they are under-staffed or there's been a crisis in the kitchen.
If you communicate dissatisfaction and commisserate with the help during the course of the meal, they usually ante up the service (by finding you to be an understanding ally of "the cause") and sometimes reward you with a nice gift certificate.
One can turn an adversary around using effective communication.
If one tips exceptionally well from the start, and plans on being a regular - you practically will guarantee excellent service from that moment on, whenever you return. The staff will fall all over themselves to have you sit at their table section.