Patrat gives attack EVs, not speed EVs. It gives 1 pt.
To speed up the process, make sure you get the Macho Brace (I forget where its found :/), which double your EV gain. If you're willing to trade online, check out the Master Wifi thread to see if anyone has and is willing to give away a Pokemon with PokeRus. If you don't know about PokeRus, its a contagious disease (meaning that if the Pokemon with PokeRus is on your party, the other Pokemon will get it eventually) that doubles your EV gain. This means that Patrat's measly 1 pt becomes 4. So instead of battling 252 Patrats, you'll only have to battle 63 Patrats.
Another thing to use are the Vitamins (Protein, Carbos, etc). They give 10 EVs a pop, making it easily the fastest route. They do cost a fortune though. You can use 10 EVs per stat, and you can use 10 of each of the vitamins. This means that after 10 proteins, Bagon will have gained 100 EVs.
Finally, there are the Power items. Obtained in the Battle Subway, these are indefinitely more useful than the Macho Brace, although the Power items are difficult to get. What they do is increase your EV gain of a specific stat by 4. Here are there effects: Power Weight - +4 HP, Power Bracer - +4 Attack, Power Belt - +4 Defense, Power Lens - +4 Sp. Attack, Power Band - +4 Sp. Defense, Power Anklet - +4 Speed). So if you battled a Patrat and Bagon was holding the Power Bracer, it would gain 5 EVs in Attack. If it was holding the Power Anklet, it would gain 1 Attack EV and 4 Speed EVs. This is currently the only way to increase two stat's EVs simultaneously.
Do note that a Pokemon cannot receive EVs from any of these methods once it is at Lv.100. The only way a Lv.100 Pokemon can gain EVs is through using Wings, which you can find on bridges. These are really tedious to collect, so I advise against going this route.
For more info, check out the
EV Training Guide by [member]ISB[/member].