Using SQL Server 2008 Integrated Change Tracking to Optimize Data Synchronization

26 June 2008 | Categories: Microsoft Sync Framework
Tags:

I thought I would take the chance to talk to you a little bit about a major enhancements we have made with synchronization in SQL Server 2008. The feature I am referring to is called SQL Server 2008 Integrated Change Tracking.

The idea behind this feature is that it enables SQL Server to track data changes to your database rather than relying on you to create a change tracking technique.

Why is this feature so great? Well in my experience I have found that DBA’s are less then enthusiastic when you tell them that in order to track changes, they will need to add triggers to each of the tables. Then they will either need to add an additional tracking column to that table (or to a separately linked table) and will need to create one tombstone table per table to track deletes. Oh, and by the way these triggers will need to be fairly complicated because you really need to deal with all of the isolation issues that come along with proper change tracking… and cross your fingers that these changes do not affect your existing applications. Not a fan of that idea? I am not surprised.

Well with SQL Server 2008, you can now simply turn on an option to enable change tracking. Then you tell SQL Server which tables you want it to monitor. From that point SQL Server will start monitoring these changes and store them in a separate change tracking table which you have access to. If you want to get the changes since a certain point in time you simply join the ChangeTable to your base table and presto you have all of the inserts, updates and deletes.

As an added bonus, this feature has been integrated into the existing Visual Studio SP1 beta that is now available for download. Guy Burstein has a great summary of this feature and I am going to steal one of his screen shots below.


As you can see from the screen shot, Visual Studio will detect if you are using SQL Server 2008 and let you choose to automatically enable change tracking for the tables you have selected to synchronize.

After you have selected change tracking, Visual Studio can go out and make the changes to your database for you. Of course, you still have the option to use the previous method of Change Tracking using triggers with SQL Server 2008. Visual Studio will still make those changes to your database to support change tracking, however given the performance of integrated change tracking and the added simplicity I think there will be very few times when the previous technique will be used.

Liam Cavanagh


Comments

Leave a Reply:

Name *

Mail (hidden) *

Website





PDC 2008 – Los Angeles, CA – Oct. 27-30

Announcing Entity Framework & ADO.NET Data Services RTM!

3 (more) New Sync Samples – Sync 101 for Sync Framework SDK v1.0

2 New Sync Samples – Download Only & Adapter Builder

Sync Framework for Windows Mobile (Devices) – CTP1

Top New Features in Sync Services for ADO.NET v2

Announcing Availability of Sync Framework v1 and Sync Services for ADO.NET v2

MySQL, MyPresentation, MyThoughts

Sample – SQL Express Client Synchronization using Sync Services for ADO.NET

Video – Building Offline Enabled Applications

Announcing Sync Framework v1.0 RC0 and Sync Services for ADO.NET v2.0 RC0 [Updated]

Synchronization to Hosted Services and an Explanation of the Bill Gates Keynote


allQoo SEO Posts

Get Adobe Flash playerPlugin by wpburn.com wordpress themes