Slow Slow Sync Service V2.0 RRS feed

  • Question

  • Hi guys!

    I would like to refer a little bit to a major post made 1,5 years ago with the topic "Slow Slow Synch Service"


    In there many ways are discussed how to increase the performance of sync services.

    I'm experiencing same problems with when i sync a windows mobile device over a WCF service.

    Even if no data changes tool place the sync for around 11 tables takes 3 minutes - what i think is  quiet a long time.

    I also installed the lastest hotfix that was released i guess it was January 2010.

    Did this hotfix tackle any problems that were mentioned in the original "Slow Slow Sync" Post?

    Can anyone give me some information about what is now the best practise to improve sync services. Actually when using this services on Desktop they are very fast, but on windows mobile device with WCF service it's very slow.

    What are the ways to improve this services, like ways to improve WCF? or any special settings to improve transfer on mobile device? ...

    thanks for your help

    Monday, May 17, 2010 6:38 AM

All replies

  • are you referring to this hotfix? http://support.microsoft.com/kb/973058

    you may want to check out using a Dataset surrogate approach as well. chk out http://jtabadero.spaces.live.com/blog/cns!BF49A449953D0591!1190.entry


    Monday, May 17, 2010 10:24 AM
  • Hi,

    yes I'm referring to this hotfix. I uninstalled syncservices from the device and then i reinstalled the syncservices with the *.cab file given by this hotfix - actually there i couldn't experience any vast improvement.

    What i also tried is copying the file from the device to a desktop PC, then doing the sync on the desktop and then copy the .sdf file back to the device. Nevertheless, the SDF file is around 40MB, the RAPI.COPYTODEVICE takes about nearly 10 minutes, RAPI.COPYFROMDEVICE takes the same time - so the whole sync takes about 20 minutes ;D  - are there faster ways to do a filecopy??

    So actually I already tried alot but not getting to an suitable end

    Monday, May 17, 2010 10:46 AM
  • the hot fix shared above has addressed the issue with inserting data to the SqlCe database on devices. Thomas, can you please trace your case to see where the perf bottlenck is ? I suspect the perf issue Thomas described here ( empty sync took 3 minutes for 11 tables) is like to be the same we have discussed a week ago (http://social.microsoft.com/Forums/en-US/syncdevdiscussions/thread/07954119-a6fd-4b69-9ad4-11c82e9cab9e).




    This posting is provided "AS IS" with no warranties, and confers no rights.
    Monday, May 17, 2010 8:00 PM
  • I did a trace and have this svclog file now...i also the the svclogviewer, what kind of information do you need now? shall i send you the file?

    By "empty sync" i mean, that both databases are equal, so the databases are not empty, but there is nothing to sync.

    Is there also a way to do a fast file sync? When my device is connected to a Win 7 PC, and i try to copy the SDF file from the device, this takes nearly 10 minutes for 40MB)... So syncing (copy from device, sync on desktop, copy to device) takes about 20 minutes. I did this by Opennetcf.desktop.communication.rapi.



    Tuesday, May 18, 2010 12:18 PM
  • by tracing I meant to say the trace provided by sync services ( you can follow the this link to enable it http://msdn.microsoft.com/en-us/library/cc807160.aspx ).

    the trace provides detailed steps for each sync and we can get the information from the trace file to see what the bottle neck is for this case.

    for copying the files instead of syncing the data, this is a way to do fast initialization of the sqlce clients, especially the data is huge. I know a few cases in this forum does this. but for subsequent sync, I would recomend this unless you prove this is a better/faster way for your partular scenario.



    This posting is provided "AS IS" with no warranties, and confers no rights.
    Thursday, May 20, 2010 7:20 PM
  • Hi!

    Now i checked my Trace file,

    Inserts/Updates are quiet fast, BUT it takes nearly 1,5 minutes to close the connection of one Syncgroup and connect to the next syncgroup? - any ways to improve this?


    INFO   , w3wp, 3, 05/23/2010 06:18:13:724,    --- End Enumerating Deletes for Table COLK ---
    INFO   , w3wp, 3, 05/23/2010 06:18:13:724, --- End Server Enumerating Changes from Client for Group "COLKSyncTableSyncGroup" ---
    INFO   , w3wp, 3, 05/23/2010 06:18:13:724, Closing connection to server
    INFO   , w3wp, 3, 05/23/2010 06:19:33:758, Connecting to server using string: Data Source=DATABASESERVER;Initial Catalog=BLMSII;
    INFO   , w3wp, 3, 05/23/2010 06:19:33:758, ----- Server Enumerating Changes to Client for Group "COLPSyncTableSyncGroup" -----
    INFO   , w3wp, 3, 05/23/2010 06:19:34:687,               Client Id: 9a3334ef-1eb9-4009-86f9-98b0b6d5bc57
    INFO   , w3wp, 3, 05/23/2010 06:19:34:687,  

    Sunday, May 23, 2010 6:30 AM
  • there is a gap and i suspect this is the time at the client side. it would be more useful to get both client side and server side traces so we can analyze the progress of the entire sync from end to end.




    This posting is provided "AS IS" with no warranties, and confers no rights.
    Monday, May 24, 2010 7:42 PM
  • Hello Yunwen

    I did some more debugging: 20.000 Changes   (10000 deletes + 10000 inserts) take 9 minutes to sync.


    Bottleneck is again WCF transport and clientside insert.... (but i guess this is a common problem).

    I could reduce the time from 9 to 6 minutes when using Datasurrogate approach  mentioned by June T.

    I'm now trying to play a little bit around with GZIP.





    Wednesday, May 26, 2010 4:21 AM
  • I know it's been a long time since you've posted this.. Did you ever find a solution?  I'm having the similar sync issues.  SQL 2008 R2 central server, WPF clients with SQLCE, WCF Sync Service.  VERY SLOW syncs with little data.

    The SyncTrace shows a 5 minute gap between End Client Enumerating Changes and Client Applying Changes.  All other sync stages are fast (seconds)

    INFO   , MYAPP.vshost, 15, 03/21/2012 17:10:52:554, --- End Client Enumerating Changes to Server for Group "LocalDataCacheGlobalSyncGroup" ---
    INFO   , MYAPP.vshost, 15, 03/21/2012 17:15:11:677, ----- Client Applying Changes from Server for Group "LocalDataCacheGlobalSyncGroup" ----- any help or suggestions would be awesome!  been stuck on this one..

    Wednesday, March 21, 2012 5:44 PM
  • try this, the concept should apply even if youre not using a mobile device:

    Synchronization Services for ADO .NET for Devices: Improving performance by skipping tables that don’t need synchronization

    if you have plenty of changes, you may try the DataSetSurrogate approach

    Sync Framework WCF-based Synchronization for Offline scenario – Using custom dataset serialization

    Wednesday, March 21, 2012 11:55 PM