打印本文 打印本文 关闭窗口 关闭窗口
深入SQL SERVER 2000的内存管理机制(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数7251  更新时间:2007/11/14 11:03:46  文章录入:mintao  责任编辑:mintao
你提高SQL Server的默认网络包的大小为8K., 立即,SQL SERVER立刻开始在ERROR LOG中写错误信息,提示预留虚拟内存在MemToLeave (内存释放区)区有问题.在看到这样的信息后你立刻会知道这个改变至少是问题的一部分,因为你知道分配8K或更多的内存是在MemToLeave (内存释放区)区. 这样SQL Server连接相关联的缓存也是来自这个区域,因为你已经配置网络包的大小太高了.配置默认的网络包适合于.NET frameworkSQLClinet Provider 8KB.这种情况并不象听起来那么合理.实际上,这是非常常见的问题,由于MemToLeave  (内存释放区)缺乏内存空间而引起的,因为网络包的大小太大,至少有些部分是这样的.

同时,了解SQL Server划分内存的方法可以帮助你了解你定制在SQL Server中运行的代码是否在系统资源的临界值,比如数据缓存. 比如说,你建立一个扩展存储过程调用SRV_PRO()函数来分配内存.假设,暂时你代码中分配的缓存小于8KB.根据我们前面的讨论,我们知道扩展存储过程是从Bpool (缓冲池区)来分配内存.—可以用作数据缓存.

了解SQL Server是如何管理内存的

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

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