locked
Performance of ADO.NET Sync Services for Devices RRS feed

  • Question

  •  

    Is ADO.NET Sync Services for Devices intended to replace RDA?  I am seeing horrible performance; see below.  It is likely that I have missed how to use it properly; I need guidance on how to use it "head-to-head" with RDA to get the same performance.

     

    Questions:

    1) How do you prevent ADO.NET Sync Services for Devices from creating primary keys and indexes?

    2) Does ADO.NET Sync Services for Devices compress data?

    3) Is following the pattern from the LOB accelerator and the CTP sample from the release page for ADO.NET Sync for Devices the best practice?

     

    Background: My company is writing a new version of a handheld application that used RDA and eVC4.0 to sync about 3-6 MB of data to a local SDF database on the handheld.  Now we plan to rewrite it in C#.  I have been tasked with discovering Microsoft's "best practice" for syncing some data from SQL Server to an SDF file on the database.

     

    My test data is a few columns from one table with about 30,000 rows.  The query looks like "SELECT GuidIdColumn, Number, Name, Address, City, State, Zip, Active FROM ACCOUNT".

     

    Using SqlCeRemoteDataAccess.Pull, I can synchronize this data in 47 seconds.  It ended up being a 3.5 MB SDF file.

     

    I copied code from the LOB Solution Accelerator which made a SyncService.asmx file with GetChanges, ApplyChanges, GetDownloadOnlyTableAdapter, SyncContext, &c., this same data, I got horrible performance.  When I ran the code on the desktop, it created a 6.4MB SDF file, because it also copied the Primary Key and Unique Index attributes for the primary key, which RDA did not do.  When I tried to run it on the handheld, I stopped it after 15 minutes, at which point it had created about 5.7 MB of SDF file.

     

    For reference I made my own "sync services over XML" which wrote the data out as attribute-centric, gzipped XML, and the same data synced in 55 seconds.

     

    We have seen a web page on MSDN that says Microsoft does not recommend using RDA for new projects, but based on this performance, we cannot use ADO.NET Sync Services. 

    • Moved by Hengzhe Li Friday, April 22, 2011 2:57 AM (From:SyncFx - Microsoft Sync Framework Database Providers [ReadOnly])
    Monday, May 19, 2008 3:40 PM

Answers

  • As Yunwen stated, we are looking closely at performance and recognize that we need to improve significantly relative to RDA.  It is also important to note that Sync Services for ADO.NET targets a much more advanced set of scenarios relative to RDA. Please monitor our blog for any updates related to perf improvements and thank you for the feedback.  Our next release will have a significant focus on performance across both desktop and device scenarios.

     

    Regards,

     

    Sean Kelley

    Program Manager

    Microsoft.

     

     

     

     

    Friday, August 1, 2008 4:42 PM
    Moderator

All replies

  • Hi

    THanks for reporting this perf issue. we noticed that this is a big perf gap between what we have with RDA and sync Service and we have started investigating this perf issues already. will keep you updated.

     

    is this you initail sync or subsequent sync ? if this is the inital sync, could you construct the SSC database file with the inital data and calling sync with createTableOption as "usingExisting" table ? in this case, it will not go through the lengty applying changes part ( which applies 30,000 rows in your case ) ? this could be a potential workaround for this perf issue before we have a fix for it.

     

    thanks

    Yunwen

     

     

    Tuesday, May 20, 2008 1:26 AM
    Moderator
  • Hi,
    I ve finally implemented a n-tier scenario on my pocket pc.
    After testing a full sync (with database creation etc), I am as surprised as tballard.
    This is the schema of my database :

    ARTICLE
    6 columns : nvarchar(7),nvarchar(1),nvarchar(2),nvarchar(15),int,nvarchar(7)
    22150 rows

    CODE_BARRE
    5 columns : nvarchar(32),int,nvarchar(2),float,nvarchar(7)
    12837 rows

    FOURNISSEUR
    2 columns : nvarchar(7),nvarchar(40)
    224 rows

    SECTEUR
    2 columns : nvarchar(6),nvarchar(60)
    2496 rows

    It took 24mins12secs to sync ! With the same database it took around 5min with RDA.

    Is it possible to compress data to accelerate the transfert ? Is there some task or network configuration which slow down the sync ?

    Thanks

    Sam
    Thursday, May 22, 2008 2:26 AM
  •  

    Hi,

     

    As these two cases, I get some really bad time response with the ADO Sync ... I am kind of surprised to see that on the MSDN documentation says that we have to use this library and stop to produce new applications with RDA...

    Friday, August 1, 2008 2:55 PM
  • As Yunwen stated, we are looking closely at performance and recognize that we need to improve significantly relative to RDA.  It is also important to note that Sync Services for ADO.NET targets a much more advanced set of scenarios relative to RDA. Please monitor our blog for any updates related to perf improvements and thank you for the feedback.  Our next release will have a significant focus on performance across both desktop and device scenarios.

     

    Regards,

     

    Sean Kelley

    Program Manager

    Microsoft.

     

     

     

     

    Friday, August 1, 2008 4:42 PM
    Moderator
  • By next release do you mean the one after initial Sync Services for devices release? So this one is going to basically be next to useless when syncing more than a few records? If so what is the point of it?

    Wednesday, August 6, 2008 10:02 AM
  • We understand the urgency of this request and are taking this very seriously.  By next release, I am not implying that we are pushing this to the next major release.  Rather, we are considering a wide variety of options including a minor release intended to address these performance issues. 

     

    Regards,

     

    Sean Kelley

    Program Manager

    Microsoft 

     

     

     

    Wednesday, August 6, 2008 1:09 PM
    Moderator
  • Hi

    Can you please give us an idea when this new release will be? Within the next couple of weeks or more?

     

    Thanks a lot

     

    Monday, August 18, 2008 2:52 AM
  • Hi All,

    My Application Suffering with poor performance  . I am using

    Client Side (device)  : Sql CE

    Server side(Sql Server 2005)

    Communaction : WCF

    And Sync Services with ado.net.

    For 12,000 records it is taking 6 min. can any one guide me to increase performance of my application.


    Thanks
    Lakshmi Narayana
    Wednesday, June 17, 2009 9:34 AM