这是SQL Server 缓冲池的预期行为。
默认情况下,在启动 SQL Server之后,SQL Server会根据操作系统报告的物理内存数来动态增大或缩小高速缓冲存储器的容量。只要可用物理内存大小保持在4MB到10MB之间,SQL Server 缓冲池就会继续增大(保留可用物理内存在4MB到10MB之间是为了避免操作系统因为缺少内存而频繁地换页)。如果物理可用内存变得较少的时候,则SQL Server会将一些内存释放给操作系统。
默认情况下,在启动 SQL Server之后,SQL Server会根据操作系统报告的物理内存数来动态增大或缩小高速缓冲存储器的容量。只要可用物理内存大小保持在4MB到10MB之间,SQL Server 缓冲池就会继续增大(保留可用物理内存在4MB到10MB之间是为了避免操作系统因为缺少内存而频繁地换页)。如果物理可用内存变得较少的时候,则SQL Server会将一些内存释放给操作系统。
其具体步骤是:
1.打开企业管理器,展开服务器组。
2.单击该服务器,点击鼠标右键,单击属性菜单。
3.在弹出的对话框中单击内存选项卡。 内存设置方法有两种:
1.设置min server memory和max server memory 在一个范围段内。
比如,我们将它设置成最小0MB,最大255MB。这种方法在为一台服务器中运行多个应用程序分配内存时非常有用。
2.设置 min server memory 和 max server memory 为同一数值。
比如,可以将它最大和最小值都设置成255MB。这样的设置方法与窗口中的另一个选项“使用固定的内存大小" 相一致。
虽然内存最小值和最大值设置是高级选项,但在设置完毕之后,最好还是先将SQL Server服务停止后再重新运行,以便SQL Server能更好地对内存进行合理安排。
比如导致数据库在繁忙的时候无法获取足够的系统资源而停止服务?经常我们的系统都是在SQLServer内存占有量达到了60%多的时候,整个系统的内存占有量达到70%多的时候,应用程序就停止响应了,这个应用程序是用以操作数据库的。帮忙解释一下。谢谢!
-----------------------此时,你服务器的CPU使用情况是什么?磁盘系统很忙吗?可用内存是多少?
出现‘应用程序就停止响应了’后,你是重起服务器,还是应用程序?
没有太注意过故障点的情况,所以不好说。只能知道内存的情况是在70%以上。所谓的停止响应是指在任务管理器中,“应用程序”页也就是第一页状态栏中的状态信息。处理办法是做群集切换,我们做了群集。
你的应用程序是7*24,所以有可能是程序容错的问题,或是BUG。
我觉得和内存没有太大关系。
但是基本上得到的现象可以从SQL内存的占有量上得到。所以,我想先从SQL入手,毕竟可以通过SQL的调优尽可能的改善一下现状。而修改程序代码毕竟不那么容易,并且我们这儿的应用能得到的支持不多了。比较难。大家继续,我谢谢各位了。
SQL-Server不断吃内存,是把以前查询的数据存在在内存中,为下次查询提高查询效率作准备,所以会不断吃内存,当达到最大值时会自动释放一部分内存,如果用户没设置,就是当前计算机的物理内存为最大值了