Monday, March 26, 2012

Push V/S Pull

I believe I have read this before, and apologize for being redundant...
If you have a new server that will be dedicated to reporting, it is more efficient & faster to make this server the Distributor & do a PULL from the production database?
I am pretty sure I have a pretty good understanding of changes being replicated & pushed, but can you help me understand why Pull would be the better option.
Sorry for being thick, I have been reading & reading, and it just isn't sticking...
Thanx!
JLS,
The Distribution Agent can consume significant amounts of memory and CPU cycles, so using pull (or anonymous) subscriptions can increase performance by moving agent processing from the distributor to the subscriber.
The Log Reader Agent writes commands to the distribution database and if you have a remote distributor you also gain by reducing disk I/O on hte production server. Also, the cleanup tasks that are run as a maintenance activity on the distribution database can become expensive and involve significant disk activity.
HTH,
Paul Ibison
(The ONLY sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||Thanx Paul.
I am having an issue of a stored procedure inside a Crystal Report running seamlessly inside my ERP system, faster than my replication records are present in my reporting database.
I am hoping if I change to a PULL subscription with the Distributor being the box where the Reporting database resides, that this problem will be resolved.
I don't want to put a delay into the sp, that would be like shooting myself in the foot. The whole reason for the reporting database is to speed things up on both sides, logically the ERP will run faster once the reports execute on a different box, and this should also be true for the reports, since they will have their own servers.
Any other suggestions for me? I have read everything I can get my hands on.
I'm down to thinking about having 2 separate ODBC drivers, one for the seamless shipping reports that are executing so fast to continue to process on the production db, and all other reports execute on the reporting server & db. But I would really rather have all reports happening on the reporting server & db if at all possible....
"(The ONLY sql server 2000 replication book:" but it's still not available......
"Paul Ibison" <Paul.Ibison@.Pygmalion.Com> wrote in message news:%23tJzWqdlEHA.3392@.TK2MSFTNGP14.phx.gbl...
JLS,
The Distribution Agent can consume significant amounts of memory and CPU cycles, so using pull (or anonymous) subscriptions can increase performance by moving agent processing from the distributor to the subscriber.
The Log Reader Agent writes commands to the distribution database and if you have a remote distributor you also gain by reducing disk I/O on hte production server. Also, the cleanup tasks that are run as a maintenance activity on the distribution database can become expensive and involve significant disk activity.
HTH,
Paul Ibison
(The ONLY sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||JLS,
I'd definitely recommend this article for performance optimization hints: http://www.microsoft.com/technet/pro.../tranrepl.mspx
In particular, have a look at the sections on the Log Reader Agent Properties and the Distribution Agent Properties.
The most important one in most cases is POLLINGINTERVAL (both agents) in order to reduce the latency to a minimum.
HTH,
Paul Ibison
|||That helps a great deal, Thanx!
One more quick question....
Which table holds the commands to be replicated?
For example, yesterday I had an issue with a duplicate record, and I wanted to clear the command "Call MS_Repl_delete....."
I know I have done this before, but I can't recall what table I cleared it from the last time.
"Paul Ibison" <Paul.Ibison@.Pygmalion.Com> wrote in message news:ObEfrdelEHA.2884@.TK2MSFTNGP09.phx.gbl...
JLS,
I'd definitely recommend this article for performance optimization hints: http://www.microsoft.com/technet/pro.../tranrepl.mspx
In particular, have a look at the sections on the Log Reader Agent Properties and the Distribution Agent Properties.
The most important one in most cases is POLLINGINTERVAL (both agents) in order to reduce the latency to a minimum.
HTH,
Paul Ibison
|||JLS,
select * from distribution.dbo.MSrepl_commands
or
sp_browsereplcmds
Cheers,
Paul Ibison
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)

No comments:

Post a Comment