问题背景
我们的报盘程序使用的是SQL Server服务器,报盘程序运行几个小时后,经常发现服务器上80%以上的内存都被数据库给占用了,导致整个服务器的物理内存使用率接近95%以上。整个服务器运行速率都受到影响。
SQL Server使用内存的技术细节
经上午查询,SQL Server使用数据库是比较贪婪的。具体细节如下
扩展:(转自网络)
由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存。所以很多时候,我们会发现运行Sql Server的系统内存往往居高不下。这些内存一般都是Sql Server运行时候用作缓存的,例如你运行一个select语句,那么Sql Server会将相关的数据页(Sql Server操作的数据都是以页为单位的)加载到内存中来,下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。这类的缓存叫做数据缓存。还有一些其他类型的缓存,如执行存储过程时,Sql Server需要先编译再运行,编译后的结果也会缓存起来,下一次就无需再次编译了。
这就解释了上文问题为什么发生。
————————————————
版权声明:本文为CSDN博主「东东不邪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/donghustone/article/details/83338185