Sql-server – If a SQL Server Replication Distributor and Subscriber are on the same server, should a PUSH or PULL subsciption be used

database-replicationsql serversql-server-2012transactional-replication

Thanks in advance for any help.

I'm setting up a new Microsoft SQL Server replication and I have the Distributor and Subscriber running on the same server. The Publisher is on a remote server (as it is a production database and MS recommends that for high volumes, the Distributor should be remote).

I don't know much about the inner workings of PUSH vs PULL subscriptions, but my gut tells me that a PUSH subscription would be less resource intensive because (1) the Distributor is already remote, so this shouldn't negatively effect the Publisher and (2) pushing the transactions from the Distributor to the Subscriber is more efficient than the Subscriber polling the Distribution database.

Does any one have any resources or insight into PUSH vs PULL which would recommend one over the other? Is there really going to be that big of a difference in performance / reliability / security?

Best Answer

I'd personally set it up as a push because it's slightly easier to administer.

For the purposes of this discussion, the difference between a push and a pull is where the distribution agent gets run. For a push, it gets run at the distributor. For a pull, it gets run at the subscriber.

However, since those are the same here, it doesn't matter. However, to set up a pull subscription, you need to add one more stored procedure call in the mix when you're configuring replication (i.e. sp_addpullsubscription).