General :一组大杂烩: 语句,语句编译,范式化,锁数据结构,事务上下文,表格,索引的元数据等。
Query paln:语句和存储过程的执行计划。
Optimizer:sql server在生成执行计划的过程中需要消耗的内存。
Utilities:像BCP, Log Manager,Parallel Queries,Backup
1.3 线程内存
为每个线程分配0.5MB的内存
1.4 第三方代码申请的内存
如用户定义的CLR,Linked Server分布式查询从远程数据库取回大量数据。
2. 按申请方式分类
申请方式是指要先预先Reserve一块大的内存,然后再一小块一小块的commit。对Database Cache是会先Reserve,再commit。
其他所有内存使用,基本都是直接commit,都叫Stolen。
3. 按申请大小分类(上面的内存图就是这种分类)
有二种内存申请单位: 一种是小于或等于8KB的,称为Buffer Pool,一次一个页面的这种分配,被称为single page allocation.
一种是大于8kb的,称为Multi-page(以前叫MemToLeave),这种分配,被称为 Multiple Page Allocation.
注意这里的很大一部分内存不受 sql server本身控制.因为第三方代码申请的内存都放在Multi-page里.
内存分类方法之间的关系










