I have a VLDB that is being replicated using transnational replication. The performance has been terrible, and the process frequently times out.
After much investigation, including Service Packs and hotfixes, page file increase, TempDB tweaks, RAM increases, SAN tests, even a new node in the cluster(!) we have finally found that the issue is being caused by a Database Snapshot on the subscriber.
I have seen a similar issue with index rebuilds, where the Ghost clean-up task was blocking the Copy-On-Write thread, and the resolution was to disable the Ghost clean-up task.
Unfortunately, in this case, disabling the ghost clean-up task has not resolved the issue, and replication continues to get Query Time-outs, usually during delete operations. Increasing the query timeout period simply increases the amount of time before it times-out!
Has anybody come across this, or have any ideas as to how to resolve the issue? Removing the Database Snapshot, even during the period of replication is not possible, as it is supporting user reports.