A friend of mine called me up last night. He had a problem replicating 300,000,000 transactions per day, or was it per hour. Can't recall, it was a late night.
Anyhowze, with volumes like this replication might not be the best tool. His problem was that the distribution agent to two of his subscribers was hanging on initializing. From experience I know this is caused by depleted buffers on the publisher and the only solution I know of is a reboot. Naturally this was not an option for him.
His has his max distribution retention setting to 72 hours and was under the impression that this would decrease the amount of time required to purse distributed transactions. I told him that min distribution retention setting controlled this, and that his problem with expired subscribers was likely caused by this low max distribution retention setting or the history setting. Subscribers are expired based on the lesser of these two settings.
Anyhowze on with my story - so he asks me what he can do to improve performance and I recommended he use sp_scriptdynamicupdproc to create a more efficient update proc (as his app did heavy updating), or its SQL 2005 analogue sp_scriptsupdproc.
I expect another midnight call from him soon as he continues in his losing battle.