SQL Server 2000内存管理内幕
2007-05-19 09:40:34 来源:WEB开发网Monitoring SQL Server Virtual Memory Use
你可以通过SQL Server:Buffer ManagerTarget Pages Perfmon计数器跟踪计算出的BPool最大值。SQL Server不同部分需要内存时,BPool提交一开始就被保留的8KB大小的页直到达到计算的上限值,你可以通过SQL Server:Buffer ManagerTotal Pages Perfmon计数器跟踪BPool中被提交的虚拟内存的使用状况。另外你可以通过Private Bytes计数器跟踪SQL Server进程中所有被提交的虚拟内存的使用状况。
因为SQL Server中绝大部分虚拟内存的使用都来自BPool,因此通常情况下,这两个计数器将一前一后的增加或平稳下来(记住,当启用AWE支持后,Private Bytes计数器不会反映SQL Server全部的内存使用)。如果Total Pages计数器平稳下来,而Private Bytes持续增加,这通常表明MemToLeave区域中连续的内存分配。这种内存分配可能比较常见,例如可能是SQL Server创建额外的工作线程时和线程栈相关的内存分配,或者是进程内COM对象、扩展存储过程等外部请求者的内存泄漏等。如果由于内存泄漏或者内存使用过大,导致MemToLeave区域耗尽,使SQL Server进程用完了虚拟内存地址空间的内存(或者是MemToLeave区域中的最大空闲块低于0.5M的默认进程栈大小),就算是并没有达到使用sp_configure配置的最大工作进程数,SQL Server将无法创建新的工作进程。这种情况下,如果SQL Server需要创建一个新的工作进程来执行一个工作请求,例如处理SQL Server新的连接请求等,那么这个工作请求将被延迟,知道服务器有足够的资源创建工作进程,或者是其它工作进程被释放出来。这可能会导致用户无法连接到服务器,因为在从MemToLeave中获得足够的空闲空间或者是其它工作进程被释放能够处理当前工作请求之前,连接可能会超时。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接