您当前位置:优侠库 > 资讯攻略 >
来源:未知
2022-01-01 01:06:10 浏览: 分类:资讯攻略

SQL Server数据库占用过多内存的解决方法

经常有网友问,sql server占用内存太多,还会继续增长;或者已经设置了使用内存,但是没用那么多。发生了什么事?

接下来,让我们具体看看SQL Server是如何使用内存的。

最大的开销通常用于数据缓存。如果有足够的内存,它会把所有用过的数据和你认为你会用到的数据都扔进内存,只有在内存不够的时候才会清除命中率低的数据。所以我们看统计io的时候,看到的物理读数都是0。

其次是查询开销。一般来说,hash join会带来比较大的内存开销,merge join和nested loop开销比较小,还有排序、中间表和游标。因此,用于关联和排序的列通常需要索引。

再次是执行计划和系统数据的存储,相对较少。

我们先来看看数据缓存对性能的影响。如果系统中没有其他应用程序争用内存,那么数据缓存越多越好。有时候我们甚至会强行把一些数据钉到缓存里。但是如果有其他的应用,虽然MS SQL会在需要的时候释放内存,但是也会花时间去切换线程和等待IO,所以性能会降低。所以我们必须设置MS SQL的最大内存使用量。您可以在SQL Server属性(“内存”选项卡)中找到配置最大内存使用量的位置,也可以使用sp_configure来完成此操作。如果没有其他应用程序,那么就不要限制MS SQL对内存的使用。

最后,我们来看看查询开销。显然开销越低越好,因为我们无法从中获益。相反,我们使用的内存越多,查询速度越低。因此,我们一般应该避免使用中间表和游标,并在经常关联和排序的列上建立索引。

关键词:SQL Server、数据库

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227217.html

攻略资讯
安卓软件
安卓游戏