解决MSSQL占用过多内存的简单方法介绍

2016-01-29 15:56 68 1 收藏

解决MSSQL占用过多内存的简单方法介绍,解决MSSQL占用过多内存的简单方法介绍

【 tulaoshi.com - SQLServer 】

经常看见有人问,MSSQL占用了太多的内存,而且还不断的增长;或者说已经设置了使用内存,可是它没有用到那么多,这是怎么一回事儿呢?

首先,我们来看看MSSQL是怎样使用内存的。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉。所以一般我们在看statistics io的时候,看到的physics read都是0。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/sqlserver/)

其次就是查询的开销,一般地说,hash join是会带来比较大的内存开销的,而merge join和nested loop的开销比较小,还有排序和中间表、游标也是会有比较大的开销的。

所以用于关联和排序的列上一般需要有索引。

再其次就是对执行计划、系统数据的存储,这些都是比较小的。

我们先来看数据缓存对性能的影响,如果系统中没有其它应用程序来争夺内存,数据缓存一般是越多越好,甚至有些时候我们会强行把一些数据pin在高速缓存中。但是如果有其它应用程序,虽然在需要的时候MSSQL会释放内存,但是线程切换、IO等待这些工作也是需要时间的,所以就会造成性能的降低。这样我们就必须设置MSSQL的最大内存使用。可以在SQL Server属性(内存选项卡)中找到配置最大使用内存的地方,或者也可以使用sp_configure来完成。如果没有其它应用程序,那么就不要限制MSSQL对内存的使用。

然后来看查询的开销,这个开销显然是越低越好,因为我们不能从中得到好处,相反,使用了越多的内存多半意味着查询速度的降低。所以我们一般要避免中间表和游标的使用,在经常作关联和排序的列上建立索引。

来源:https://www.tulaoshi.com/n/20160129/1496813.html

延伸阅读
标签: windows 操作系统
不知你用WindowsXP系统时有没有这样的经验,使用WINDOWS资源管理器里,在选中文件上单击右键会突然使系统变慢。 不久以前曾有人提出过这样的疑问,并打开资源监视器发现果然如此,在单击右键时CPU占用率达100%。 这是不是XP的一个BUG呢?近曰微软公司终于静悄悄地发布了一篇报告证实了这一点:在WINDOWS XP的资源管理器里,选中文件单击右键...
标签: windows系统
重装win8系统内存占用忽高忽低的解决方法   很多win8用户在使用一段时间后,系统就会变得特别的卡顿,故此很多用户都会选择对win8系统重装,但同样问题有来了,用户在重装win8系统后,出现内存不稳定,忽高忽低的问题,对于出现该问题是什么原因造成的?我们应用如何解决呢?下面看河东软件园图老师小编为您带来的详细操作方法! ...
标签: windows系统
解决win8系统TrustedInstaller.exe进程占用过高的方法   win8系统用户在任务管理器中会发现有一个TrustedInstaller.exe的系统进程,有时会占用用户很高的CPU,对于该进程很多用户不知道是干什么的,也不敢轻易的禁止,其实win8系统中的TrustedInstaller.exe进程是Windows模块安装服务模块进程,用户是可以禁止的,下面我们看下该进程...
内存占用最佳解决方法安装使用教程 其实小编很早就听说过绿色守护这个软件,只是一直没有细看,以为不过又是个管理进程的东西,最近手机总是莫名耗电,寻找各种方法,最终又找到了他,原来这是个神器! 绿色守护帮助你甄别那些对系统全局性能和能耗有不良影响的应用程序,并通过独有的绿色化专利技术,阻止它们消耗您的电池电量,占用...
ios8解决后台应用过多引起的闪退   Tulaoshi.Com虽然说,随着iOS系统的不断升级,系统优化越来越好,兼容性越好,但当你打开很多程序的时候,很可能会出现后台程序太多内存不足而引起闪退问题。对于这种闪退问题的解决办法: 第一步,双击Home键调出后台界面,这里可以查看已经打开的后台应用。 第二步,向左或向右滑动...

经验教程

496

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部