加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

怎样办理SQL Server占内存过多的题目

发布时间:2018-08-25 02:05:37 所属栏目:电商 来源:站长网
导读:常常望见有人问,MSSQL占用了太多的内存,并且还不绝的增添;可能说已经配置了行使内存,然则它没有效到那么多,这是怎么一回事儿呢? 起首,我们来看看MSSQL是奈何行使内存的。 最大的开销一样平常是用于数据缓存,假如内存足够,它会把用过的数据和认为你会用
常常望见有人问,MSSQL占用了太多的内存,并且还不绝的增添;可能说已经配置了行使内存,然则它没有效到那么多,这是怎么一回事儿呢?

起首,我们来看看MSSQL是奈何行使内存的。

最大的开销一样平常是用于数据缓存,假如内存足够,它会把用过的数据和认为你会用到的数据完好扔到内存中,直到内存不敷的时辰,才把掷中率低的数据给清掉。以是一样平常我们在看statistics io的时辰,看到的physics read都是0。

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

以是用于关联和排序的列上一样平常必要有索引。

再其次就是对执行打算、体系数据的存储,这些都是较量小的。

我们先来看数据缓存对机能的影响,假如体系中没有其余应用措施来争夺内存,数据缓存一样平常是越多越好,甚职苄些时辰我们会强行把一些数据pin在高速缓存中。可是假若有其余应用措施,固然在必要的时辰MSSQL会开释内存,可是线程切换、IO守候这些事变也是必要时刻的,以是就会造成机能的低落。这样我们就必需配置MSSQL的最大内存行使。可以在SQL Server 属性(内存选项卡)中找到设置最大行使内存的处所,可能也可以行使sp_configure来完成。假如没有其余应用措施,那么就不要限定MSSQL对内存的行使。

然其后看查询的开销,这个开销显然是越低越好,由于我们不能从中获得甜头,相反,行使了越多的内存多数意味着查询速率的低落。以是我们一样平常要停止中间表和游标的行使,在常常作关联和排序的列上成立索引。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读