Conor vs. SQL Azure Parallel Query

(The official name is Windows Azure SQL Database, but since SQL Database is hard to search for, I included SQL Azure up in the title).

One question I got from my recent trip was around query parallelism in WASD/SQL Azure. 

Currently WASD does not support parallel queries for user operations.  That’s not a “never” statement, more of a “right now” statement.  The initial model for databases in WASD focuses primarily on OLTP queries (which rarely if ever need to be parallel unless something is wrong).  Additionally, the commodity hardware being used for initial WASD clusters is more well-suited for OLTP than DW (though it is possible and some do try to do more IO-intensive workloads on the platform). 

One nuance to this answer is that a number of customers are employing sharding approaches for solutions on WASD, especially Software-as-a-Service (SaaS) ISVs.  These customers end up using hundreds of thousands of databases to store what might have been “one” database in an on-premise equivalent.  The net effect of using such a pattern is that you can submit multiple queries to them in parallel and these can execute concurrently across many machines.  As a result, there is a form of inter-query parallelism instead of intra-query parallelism that can be employed.  In some ways, it is actually more powerful than what we can do within a single query both because we can leverage more cores and because it is more explicit – you can somewhat “force” a notion of parallelism that is not exposed in the base product today.

 

Customers wishing to use traditional parallel queries have the option to use the SQL Server-in-a-VM solution that is now released on Windows Azure.