打印本文 打印本文 关闭窗口 关闭窗口
深入SQL SERVER 2000的内存管理机制(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数6065  更新时间:2007/11/14 11:03:46  文章录入:mintao  责任编辑:mintao

深入SQL SERVER 2000的内存管理机制(三)

 

 http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnsqldev/html/sqldev_01262004.asp

 

内存区域

SQL Server是分2块区域来组织内存分配,分别是Bpool (缓冲池区)MemToLeave (内存释放区),如果你使用AWE内存,那么实际上有第三个区:Windows AWE支持的高于3GB的物理内存区。

缓冲池区是这3块内存区中最卓越的,是SQL SERVER最初分配的缓冲池供最初的数据页和索引页使用,并且被用来分配小于8K的内存。MemToLeave 是由虚拟内存空间组成包括在用户内存空间没有被缓冲池区使用的内存空间之中。Windows AWE调用3GB以上内存空间的函数作为缓冲池区的扩展可以提供额外的内存空间缓存数据页和索引页。

当你启动SQL SERVER时,缓冲池区的上限是根据机器中物理内存推算或用户内存空间的大小。一旦缓冲池区的大小被确定,内存释放区就紧随其后,不至于被后面的缓冲池区保留部分划分成分散的碎片。然后缓冲池区又在内存释放区旁边,使用32块单独的保留区运行DLL文件和其他在缓冲池区被预定时SQL SERVER中使用的虚拟内存空间。当缓冲池区被预留后,内存释放区被释放。这段区域被SQL SERVER内部用来扩展8K的数据页和分配给其他外部应用(就像:内存消费者是SQL SERVER主要引擎以外的SQL SERVER进程),比如:OLE DB providers,COM对象等等.

因此,

[1] [2] [3] [4] [5] [6] [7] [8] [9]  下一页

打印本文 打印本文 关闭窗口 关闭窗口