Friday, March 23, 2012

Merge Replication Question

When I create the publication (SQL 2000) I have to execute the following shell command to get the snapshot created:

Set @.cmd = 'c:\Progra~1\Micros~2\80\Com\snapshot -Publisher ' + @.DBServer + ' -PublisherDB ' + @.Database + ' -Publication ' + Cast(@.publication as varchar(100)) + ' -Distributor ' + @.DBServer + ' -DistributorLogin ' + @.DBUserName + ' -DistributorPassword ' + @.DBPassword + ' -ReplicationType 2'

EXEC master..xp_cmdshell @.cmd;

problem is the following:

Creating Snapshot took 14:24

Here's the log of the entire process:

Finding Publication took 0:09

About to Create Publication

Creating Publication took 0:13

About to Add Aritcles

Adding articles took 0:09

About to define filters

Defining filters took 0:11

About to Add Snapshot Agent

Adding snapshot agent took 0:01

About to Execute command to start snapshot agent

(339 row(s) affected)

Creating Snapshot took 14:24

My question is, is there a way to speed this up?

Look at the history tables to see if there's a breakdown to see where the time is being spent. If not there, then add the following parameters to the above: -HistoryVerboseLevel 2 -OutputVerboseLevel 3. This should generate more output as well as log more history in distribution.dbo.MSmerge_history.

At the same time, you didn't mention how big the snapshot is, or how fast/slow your disk subsystem is. That definitely coudl play a part in performrance.

No comments:

Post a Comment