Recently I was asked the following question: I am looking to get an understanding of the internal operations during an Access 2007 synchronize execution. I have just been exposed to a SharePoint MOSS and Access 2007 environment where at times the normal sync time goes from 7-minutes to around an hour. I am taking the side of “network bandwidth” as the reason and not the side of “data quantity” as the root cause for the increased time. Each user has their own copy of the SharePoint Lists (tables), which they work with offline. The users update their Access tables and at certain times (at their own discretion) during the day executes the synchronize function, which leads to why I expose myself to this forum's sages. Just what actions/decisions are being executed and how they are selected? From a high level there are seven stages to synchronizing data with SharePoint: The client sends pending changes to the server. The client delete the local cache. The client requests a new local cache from the server. The server pulls the data out of SQL Server and sends it to the client in batches of XML. The data travels the wire from the server to the client. The client parses the XML and loads it into an in-memory table. The client asks the user to resolve any potential conflicts. Client Memory When the user takes an application with SharePoint link tables Offline,
Office 2010 Home And Student 64bits, Access stores an copy of all the list data in an XML format that mirrors what was retrieved from the server. When Access is running this data is parsed into an in-memory table. One of the first performance challenges you will face is when Access parses the XML and loads the data in memory. If the working set gets too big Access Windows swap memory out to disk which causes the machine to thrash. I typically check task manager to see how large the working set is. There are two remedies to this problem: Increase memory on the client machine,
Microsoft Office Professional Plus 2010, and/or Move data that doesn’t change (such as stale and large lookup data) to a local table. Rehydrating the Cache When the user clicks synchronize, Access will send pending changes to the server and request an updated version of the list. Access 2007 re-fetchs the linked list(s) including the User Information Lists. If your site has a large user information list—this could take quite a while. There are a couple solutions if your app has a large User Information List: Move the data into it’s own site and not inherit the permissions from the parent site. This should give you a custom user information list that only includes people that are actually using the site. If you don’t use the User Information List the link table can be deleted. The app should still continue to function other than not resolving the Created By and Modified By lookup fields. The performance of fetching data is impacted by performance of the SharePoint Server to query the list items, return the user information list,
Office 2010 Professional Product Key, and sending data down the wire. It is limited to the speed of light—the further you are from the server the slower the response. Obviously connection speed also has a huge influence. You also have to factor in parsing the XML and loading the DOM in memory. What is on the wire? You can see what is actually sent over the wire by installing the free Fiddler Web Debugging Proxy. I find this tool invaluable to understand what is happening in the application. In investigations that we’ve done,
Office 2010 Generator, the pushing up and fetching of the data (which includes the network time plus whatever processing SharePoint does) often takes about 2/3 of the time in the go offline/sync scenario. Conflict Detection If there are conflicts detected during a sync operation (meaning the item was changed by someone on the server and someone on the client) Access launches the conflict detection dialog. We leave it up to the user to figure out which record to keep. Summary Access 2007 is much more efficient than Access 2003 working with SharePoint data; however,
Microsoft Office 2010 X64 Key, there are many opportunities for us to improve make this scenario for the client and server. We will talk more about this subject in a couple months. <div