A year and a half ago I wrote about the undocumented Dynamic Management View sys.dm_os_ring_buffers in SQL Server Professional.

Shortly the ring buffers expose internal server state information about memory, exceptions, or schedulers. Each ring buffer is giving you 64K of live information that you can get usually using a trace, by debugging or other time-expensive methods.

At that time there were 9 types of ring buffers:

  1. RING_BUFFER_RESOURCE_MONITOR - allows you to see memory state changes due to various types of memory pressure.
  2. RING_BUFFER_MEMORY_BROKER - the Memory Broker is responsible for distributing memory to each component that needs it. Each component will have an “optimal” amount of memory determined using the existing memory demand and consumption. The Memory Broker will send notification to components letting them adjust their behavior – grow, shrink or stay stable.
  3. RING_BUFFER_SINGLE_PAGE_ALLOCATOR - allow you to see when the Buffer Pool when BP, single page allocator, turns on/off internal memory pressure. More about it on the Slava's blog: SQLOS's memory manager: responding to memory pressure.
  4. RING_BUFFER_OOM - contains records about out-of-memory conditions.
  5. RING_BUFFER_BUFFER_POOL - contain records indicating severe buffer pool failures, including buffer pool out of memory conditions.
  6. RING_BUFFER_SCHEDULER - tells you what the schedulers have done in terms of I/O, the context switch order of workers and so on.
  7. RING_BUFFER_SCHEDULER_MONITOR - returns information about the health of the schedulers
  8. RING_BUFFER_EXCEPTION - contains 64K worth of exceptions.
  9. RING_BUFFER_CLRAPPDOMAIN - returns the state of AppDomains loaded in the system (More about it here:It’s 3 AM. Do you know where your appdomain is?

The Service Pack 2 for SQL Server 2005 comes with a new ring buffer - the RING_BUFFER_SECURITY_ERROR that contains Windows API failure information. You can read more about it in the post of Laurentiu: SQL Server 2005: Some new security features in SP2.