I've found the OC spray to be very effective on dogs. It's one of the reasons we repalced our "tear gas" or "mace" with OC spray. I'ts the CN and CS gasses (aka: tear gas) that didn't work on animals but seemed to work too well on the person deploying them.
OC Spray would be my first choice. I've OC'd countless dogs over the years and it's worked everytime, including on the pit bull breed that seemed very common in the areas where I worked. What was nice about it is that the effect was immediate and continuing.
The dog shoots using handgun rounds, that I saw many times over the years, sometimes took more than one shot to the violently aggressive dog. The dog was moving quickly and sometimes (not all times) continued his attack after the first shot. It sometimes took multiple pistol shots to put him down. Either the first shot missed, only grazed the animal, bounced off the skull of the dog or was just ineffective.
Then you have to deal with the investigative aftermath of firing the weapon in your town. However, the OC was immediately effective on the animal and then you can just walk away from the area.
What was nice was the action of pulling the OC canister out often caused the dog to back off. They can smell very well and the odor apparently meant something to those dogs. I would bet that the dogs who backed off had been OC'd sometime in the past

and didn't want to go through the effects for a second time.
I would keep the handgun in concealed reserve to protect myself from the owner if they come out ranting and raving and then become a threat to life or great bodily injury. If someone is irresponsible enought to have an aggressive dog running free, they're likely to be just as irresponsible and aggressive. Of course, the OC can remain an effective tool with them too, before they cross the lethal/great bodily injury line.
As for the ammo choice for dogs, I wouldn't over-think it. Shot placement and performance under stressful conditions is more important. Any premium defensive round with decent penetration would do for me.