THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search


A blog for members of the SQL Server SQLOS team to share information and get your feedback.

New SQLOS features in SQL Server 2012

Here's a quick summary of SQLOS feature enhancements going into SQL Server 2012. Most of these are already in the CTP3 pre-release, except for the Resource Governor enhancements which will be in the release candidate. We've blogged about a couple of these items before. I plan to add detail. Let me know which ones you'd like to see more on:

- Memory Manager Redesign:

Predictable sizing and governing SQL memory consumption:

sp_configure ‘max server memory’ now limits all memory committed by SQL Server
Resource Governor governs all SQL memory consumption (other than special cases like buffer pool)

Improved scalability of complex queries and operations that make >8K allocations

Improved CPU and NUMA locality for memory accesses

Single memory manager that handles page allocations of all sizes

Consistent Out-of-memory handling & management across different internal components

- Optimized Memory Broker for Column Store indexes (Project Apollo)

- Resource Governor

Support larger scale multi-tenancy by increasing Max. number of resource pools20 -> 64 [for 64-bit]

Enable predictable chargeback and isolation by adding a hard cap on CPU usage

Enable vertical isolation of machine resources

Resource pools can be affinitized to individual or groups of schedulers or to NUMA nodes

New DMV for resource pool affinity

 - CLR 4 support, adds .NET Framework 4 advantages

- sp_server_dianostics

Captures diagnostic data and health information about SQL Server to detect potential failures
Analyze internal system state

Reliable when nothing else is working

- New SQLOS DMVs (in 2008 R2SP1)

SQL Server related configuration - New DMV

OS related resource configuration
New DMVs

XEvents for SQL and OS related Perfmon counters

Extend sys.dm_os_sys_info

See previous blog posts here and here.

- Scale / Mission critical

Increased scalability: Support Windows 8 max memory and logical processors

Dynamic Memory support in Standard Edition - Hot-Add Memory enabled when virtualized

- Various Tier1 Performance Improvements, including reduced instructions for superlatches.

Originally posted at
Published Thursday, November 10, 2011 4:08 PM by SQLOS Team
Filed under:



Greg Linwood said:

Thanks for the update, but it seems so antiquated having this Windows O/S & SQL O/S model where the DBMS O/S implements a complex model of putting threads to sleep merely to work around the vagarities of the host's pre-emptive task scheduling model, not to mention the accompanying memory management problems that are inherently associated with task scheduling.

Why not build an integrated Windows SQL edition which does task scheduling & resource management specifically the way the DBMS needs it?

The current model stems from the original Sybase partnership, consequent split where Microsoft wanted to show off Windows pre-emptive multi-tasking (4x, 6x) but back-flipped in 1998 with the UMS in SQL7. The problem with UMS / SQLOS in the DBMS is that it only makes sense where you're targeting multiple platforms, which SQL Server has never done (perhaps other than OS2 / Windows in the early days).

So, today we live with an illogical architecture (Windows OS + SQL OS) which has all sorts of spin off complexities & problems.

Microsoft should build Windows SQL Edition & deal with the problem propely.

But thanks for the update on SQL 2012's OS updates. It's about time we can finally control the entire process's committed memory. The extra diagnostics & DMVs will be helpful as well

November 11, 2011 2:19 AM

Manish Rai said:

may be they  are putting so much effort in SQLOS because they are planning to build SQLSERVER  a cross platform  product :)?

But clearly if you  start reading documents on SQLOS , memory node, cpu node etc,  you end up getting confused who is doing what. Is it SQLOS who is charge of everything allocating all kind of memory by itself or  windows memory managers doing  all kind of work on behalf of SQLOS or both are doing work in bits and pieces , some one allocating buffer pool and others user cache etc  .

They need to work on proper documentations also   explaining clear boundaries of different  memory managers .

November 24, 2011 1:50 AM
New Comments to this post are disabled
Privacy Statement