Ever since we relaunched our Servicemax system to use the Summer 14 version, we have been having issues with very long sync times and possibly suffering the consequences of this, lost data, duplicate line, error messages etc. We have tried a number of fixes, suggested by both Servicemax and the members of this community, most have helped, but none have had that dramatic breakthrough we were looking for.
Whilst reviewing the list of the download criteria we had created, i again saw one that i had previously dismissed as irrelevant and had ignored, this time i decided to remove it and change the set up of another corresponding criteria setting to cover what this irrelevant one was meant to do.
Not expecting much of a change, i tested the speed of sync, and WOW!! it had a dramatic effect, syncs were suddenly many times faster! Reverting to and from the previous set confirmed this dramatic improvement.
I cant say exactly why there was this big improvement, all i can do is speculate; the criteria was set up as an advance download, it was trying to use a blank field on WO to pull related data from the installed product table to match data in the product table, this was meant to download all the products types, for all of the installed products on a site. As the field on the WO was blank, I think it caused a Cartesian Product (Join) to be made, so in effect it was trying to download all the product types for all the installed products on a site, which could run in to many many records (as i said i am speculating here).
So my advice, gained through many trials and tribulation, is to make sure every criteria set up is logically doing something, and make sure any fields used in the set up have the correct and relevant data in them!
I hope next years release of Servicemax, with its improved sync reporting will mean these issues will be easier to trace, but in the meantime carefully check those set ups.