Sql-server – SQL Server Memory Clerk Description

sql serversql-server-2008sql-server-2012

Trying to understand different memory clerks reported by sys.dm_os_memory_clerk however, not able to find description of the each individual memory clerk either on web (google and binged) or in SQL BOL. Some of the clerk can be self explanatory based on the name e.g. MEMORYCLERK_SQLXP (assuming it is for extended proc) or SQLCLR etc.

However, some of the memory clerk confused me for e.g. MEMORYCLERK_SQLGENERAL vs MEMORYCLERK_SQLBUFFERPOOL? OR SQLUTILITIES.

Is there an online reference that tells description of these memory clerks in SQL Server?

ps. The question is not how memory management works in SQL Server. Slava Oak has good blog posts regarding how memory management works but no details on different clerks.

Best Answer

There are 4 kinds of memory clerks in SQL Server.

  1. Generic
  2. Cache Store
  3. Object Store
  4. User store

memoryclerk_sqlgeneral is a general memory clerk responsible for a variety of non-specific sql activities whereas the memoryclerk_sqlbufferpool is the clerk dedicated solely to the buffer pool, since the buffer pool is a busy process.

Links:

SQLServer-DBA memory

MSDN Memory Clerks