After the last post on new warnings in SQL Server Denali Showplan, just for the fun of it, I had a look at the XML version of the showplan. And saw some fairly amazing new things I hadn't noticed before.

Everyone's been looking into the new "Batch Execution Mode" with the new ColumnStore index feature. The the new "WindowSpool" operator for use the new Windowing enhancements (listed under "Enhancements to the OVER clause" in BOL's What's New). But somehow I'd missed these (raw XML included even though these do show up in the Query Plan Properties Windows when using the appropriate iterator)

<QueryPlan DegreeOfParallelism="0" NonParallelPlanReason="MaxDOPSetToOne" MemoryGrant="1344" CachedPlanSize="24" CompileTime="2" CompileCPU="2" CompileMemory="264">
  <MemoryGrantInfo SerialRequiredMemory="512" SerialDesiredMemory="1344" RequiredMemory="512" DesiredMemory="1344" RequestedMemory="1344" GrantWaitTime="0" GrantedMemory="1344" MaxUsedMemory="1344" />
  <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="39308" EstimatedPagesCached="3416" EstimatedAvailableDegreeOfParallelism="1" />

Optimizer Hardware Dependent Properties? Really? I'm sure I'd never seen that before. Nor thought that SQL Server even considered the "EstimatedPagesCached" when creating a plan. NonParallelPlanReason would also be a big hit, perhaps. In fact, I do want to see why some of my spatial query plans don't use parallelism when spatial indexes are involved. Just what I needed (and no, it wasn't that I set MaxDOP to 1).

Intruiged, I took a look at the XSD schema for Showplan in Denali (did you know there is an XSD schema for Showplan? It's under the SQL Server directory under "…110\Tools\Binn\Schemas"). And did a quick diff with the XSD schema for Showplan in SQL Server 2008 R2. All the new elements and attributes I've mentioned here (and more) are there in the new schema (which retains the same XML targetNamespace but does add an attribute "version=1.2". Nice. There's too many interesting items to list here, and some of them don't seem to be implemented, at least in the plans I'm looking at. Some of these look like they're for special hardware configurations.

I'm impressed by just those two new elements in the XML above. And the new "NonParallelPlanReason" attribute. Maybe I'm just easy to please…

@bobbeauch