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.
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