解决SQLServer中虚拟内存不足的问题

解决SQLServer中虚拟内存不足的问题
解决SQL Server中虚拟内存不足的问题
症状
在一台2 GB或更多的内存,除了256 MB(SQL Server 7)或384 MB(SQL Server 2000)的虚拟地址空间,SQL Server将所有剩余的虚拟地址空间缓冲池使用的启动过程。此外,为了存储数据和程序的缓存,SQL Server使用缓冲池的内存对于大多数其他SQL内存要求小于8 KB的SQL服务进程提供服务。剩下的毫无保留的记忆是准备服务,不能从缓冲池获得其他配置。配置包括,但不限于,由SQL Server和关联线程环境块创建的所有线程的堆栈。SQL Server中的所有255个工作线程创建后,这是AB输出140兆字节。

在SQLServer地址空间中运行的其他DLL或进程的分布(取决于特定的系统),如任何链接服务器中的任何OLE DB提供程序。

COM对象使用sp_oa系统存储过程或扩展存储过程加载。

任何图像加载到地址空间(.exe或.dll),这些图像通常使用20到25 MB,但是如果您使用链接服务器,sp_oa或扩展存储过程,这些图像可以使用更多的空间。

这可以由进程堆和SQL Server创建的任何其他堆。在启动过程中,这个空间通常为10 MB,但是如果您使用链接服务器,sp_oa,或扩展存储过程,这个空间可能更。

配置大于8 KB从SQL Server的过程中,如较大的查询计划、网络数据包大小的配置选项,接近时需要发送和接收缓冲区的分配8 KB。看看这号码,查找操作系统保留值在DBCC memorystatus报道,这是报告的8 KB页数。通常,该值是5 MB。

跟踪缓冲池中的每个缓冲区状态信息的数组。该值通常约为20 MB,除非在SQLServer运行时启用地址窗口扩展插件(敬畏),在这种情况下,该值将显著改善。

在拥有大量数据库的系统中,日志格式化所需的64 KB分配可能占用所有剩余的虚拟内存。在此之后的分配将失败,导致本文的症状部分中列出的一个或多个错误

通过使用g启动参数,可以指示SQL Server保留额外的虚拟内存,以便这些与日志相关的赋值和其他正常赋值不会耗尽虚拟地址空间。

下表的初始值是根据数据库和服务器版本的G值上市的数量:databasessql 7.0sql Server 2000服务器

250-g134n /

500-g185n /

750-g237n /

1000-g288-g288

1250-g340-g340

1500-g392-g392

这张桌子是用典型值列计算,这个计算是基于假设服务器的活动,sp_oa或扩展存储过程没有关联。假定你没有用敬畏和SQL事件管理器。任何情况下出现以上要求你增加价值的G.

如果服务器数据库的数量超过这个数字,微软建议在运行服务器之前仔细考虑,系统的开销是因为这个数字是在系统数据库中需要的,在缓冲池中会占用大量的虚拟内存,这可能会导致系统整体性能的下降。

:建立SQL Server2000数据库安全策略
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部