Parallel processing in TSQL
I will be over in Ireland on Thursday presenting on
Service Broker .
It appears few people are actually using it for two way messaging
(conversations).
More are actually using it as a distribution mechanism for getting data from
one place to another, asynchronously and reliably.
The other implementation is to perform parallel processing. We are told over
and over that we should use set based processing in databases, whilst these are
great at obtaining a result set of data in an effiecient manner, any
calculations within the set are generally performed sequentially on a set of
data. If this calculation is expensive this has a huge impact on performance.
This can be seen clearly with a TSQL udf, these are very expensive when compared
with system functions (http://sqlblogcasts.com/blogs/simons/archive/2005/01/17/User-Defined-Function-performance-comparison.aspx and
http://sqlblogcasts.com/blogs/simons/archive/2006/03/13/Performance-of-formatDateTime-SQLCLR-function.aspx)
So if we want to get ultimate performance we need to do things in parallel,
developers for a long time have been writing multi threaded apps, especially
with .Net where its really easy. However in TSQL its not very easy, until now.
Service broker provides the ability to perform processing in parallel. If you're
interest in how then come along next week and see my presention on Service Broker
Also presenting is Tim Sneath former UK resident now over in Redmond working
on funky UI things like XAML, and Silverlight. http://blogs.msdn.com/tims/archive/2007/06/04/silverlight-in-the-uk-and-ireland.aspx
-