Uncategorized

It’s All About Parallel

Featured White Paper(s)
Free Poster – SQL Server Perfmon Counters of Interest
When you’re looking for a reliable tool to diagnose SQL Server issues, Perfmon is often the answer. No more wasting time trac… (read more)

Featured Script
sp__backup.sql
Generic script to dump all databases on a server… (read more)

It’s All About Parallel
You’d have to be away from your computer for the last year or so to not see the push from Microsoft on Parallel Programming. This is due to the current software/hardware trend to scale out instead of scale up. Instead of buying a few bigger, faster machines, we are buying many smaller machines and distributing the load.

Where do you see Parallel concepts?

  • SQL Server 2008 R2 Parallel Data Warehouse
  • Max Degrees of Parallelism as a configuration setting SQL Server Engine (for many versions)
  • SQL Azure
  • Dot Net 4.0 Parallel libraries

Microsoft isn’t the only player in this market…but there is a big push on to get parallel.As an IT Professional you are going to need to become proficient with Parallel concepts.

As a operational DBA you are going to need to configure servers to maximize multiple CPUs with multiple cores. There are a whole new set of bugs that are occurring in SQL Server and other products that you just didn’t have with the 32 bit predecessors.

As a Developer or tuning DBA you are going to need to understand database design techniques allowing for multiple concurrent processes to interact with and modify the same objects quickly. With single core CPU, it was less of an issue. Even with multiple threads, they were not capable of all operating at the same time…they each got a time slice from the same thread. Now, with multiple CPUs and multiple cores, you really have to be aware of concurrent access.

One key aspect to parallel programming is that there is not guaranteed sequence of events for different threads. Your development tools taking advantage of parallel systems needs to distribute work to multiple processes and handle bringing the results back together in any order.

Even index design is impacted by parallel processes. For example, if you have an index on a customer order table for the CustomerID and the order date and query based on CustomerID and OrderDate it may be able to use the index as designed in a parallel fashion, or it may have to do a sort into a work table based on the index, because you require either CustomerID or OrderDate to be in descending order. Itzik Ben Gan had a nice article on that in last years SQL Server magazine.

What’s the take away from this? Simply buying a new machine with 2 CPUs having 8 cores each won’t gain you anything unless your software can be broken out and run in Parallel.

So, how about some feedback? How is the race toward parallel computing impacting your neck of the woods? Drop a note to btaylor@sswug.org. I’d really like to hear from you.

Cheers,

Ben