- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server 2005 内存管理规则探秘使用SQL Server 2005或者2000的朋友可能会经常碰到,内存占用的问题,SQL总是能将所有内存消耗殆尽,这时候我们会怀疑我们的程序是否没有释放资源,或者断开连接,也可能怀疑SQL存在一个大BUG,我也碰到了这个问题,再查了很多资料后有了这样的发现:以下是微软官网的解释:在您启动 SQL Server 之后,SQL Server 内存使用量将会持续稳定上升,即使当服务器上活动很少时也不会下降。另外,任务管理器和性能监视器将显示计算机上可用的物理内存稳定下降,直到可用内存降到 4 至 10 MB 为止。 仅仅出现这种状态并不表示内存泄漏。此状态是正常的,并且是 SQL Server 缓冲池的预期状态。 默认情况下,SQL Server 根据操作系统报告的物理内存加载来动态增大和收缩其缓冲池(缓存)的大小。只要有足够的内存可用于防止分页(在 4至 10 MB 之间),SQL Server 缓冲池就会继续增大。像在与 SQL Server 分配内存位于相同计算机上的其他进程一样,SQLServer 缓冲区管理器将在需要的时候释放内存。SQL Server 每秒可以释放和获取几兆字节的内存,从而使它可以快速适应内存分配更改。 您可以使用最小服务器内存和最大服务器内存配置选项来设置 SQL Server 数据库引擎使用的内存(缓冲池)量的上下限。在设置最小服务器内存和最大服务器内存选项之前,请查阅以下 Microsoft 知识库文章中标题为“内存”一节中的参考信息: 319942??(/kb/319942/ ) 如何确定正确的 SQL Server 配置设置 注意,最大服务器内存选项只限制 SQL Server 缓冲池的大小。最大服务器内存选项不限制其余未保留内存区域,SQL Server 准备将该区域分配给其他组件(例如扩展存储过程、COM 对象以及非共享 DLL、EXE 和 MAPI 组件)。由于存在上述分配过程,因此 SQL Server 专用字节超过最大服务器内存配置是正常的。 原文地址:/default.aspx?scid=kb;zh-cn;321363 还有个比较官方的解释但是不知道来源:动态管理Windows??NT?和?Windows? 2000?上的内存当SQL?? Server?? 数据库引擎在?? Microsoft??? Windows?? NT???或?? Windows??? 2000?? 上运行时,其默认内存管理行为并不是获取特定的内存量,而是在不产生多余换页??I/O?? 的情况下获取尽可能多的内存。为此,数据库引擎获取尽可能多的可用内存,同时保留足够的可用内存以防操作系统交换内存。 SQL?? Server?? 实例在启动时通常获取?? 8?? 到?? 12?? MB??的内存以完成初始化过程。当实例完成初始化后,就不会再获取更多的内存,直到用户连接到该实例并开始产生工作负荷。这时,该实例根据需要不停地获取内存以支持工作负荷。随着更多的用户连接并运行查询,SQL?? Server??将获取支持需求所需的额外内存。该实例将继续获取内存直到达到自身的内存分配目标,并且直到达到该目标的下限才会释放任何内存。??? 为了在不产生多余换页?? I/O?? 的情况下获取尽可能多的内存,SQL?? Server??的每个实例都设置一个内存获取目标,直到计算机的可用物理内存在4?MB到10MB??的范围内。之所以选择该范围是因为测试表明?? Windows?? NT?? 和?? Windows?? 2000??都有最小内存交换,直到内存分配等于可用物理内存减去4?MB。工作负荷处理任务重的?? SQL?? Server??实例保留的可用物理内存为范围的较低端?? (4MB);工作负荷处理任务轻的实例保留的可用物理内存为范围的较高端?? (10?? MB)。? ?SQL?? Server??实例的目标随工作负荷的改变而变化。当更多的用户连接并产生更多的工作时,该实例倾向于获取更多的内存以使可用的内存保持在?? 4?? MB??的限制以下。当工作负荷减轻时,该实例将其目标调整为?? 10?? MB?? 的可用空间,并释放内存给操作系统。将可用空间量保持在10??MB与4MB?之间可防止?Windows?? NT?? 或?? Windows?? 2000??过多执行换页操作,同时使?? SQL?? Server?? 得以获得尽可能最大的高速缓冲存储器而不至引起额外的交换。?实例的目标内存设置与数据库缓冲池的页相对于可用池大小的需求有关。在任何即时点,缓冲区页的总需求取决于满足所有当前执行的查询所需的数据页数。如果相对于高速缓冲存储器内的页数,数据页的需求很大,则当前在
文档评论(0)