先简单说一下SQL server的内存管理机制,SQL Server 数据库的内存使用原则是按需分配,且贪婪(用完不还)。它不会自动释放内存,因此执行结果集大的sql语句时,数据取出后,会一直占用内存,直到占满机器内存(并不会撑满,还是有个最大限制,比机器内存稍小),在重启服务前,sqlserver不会释放该内存,也没有任何办法可人为释放。
那怎么解决呢?最直接的办法是:人为修改最大可占用物理内存进行限制。
那么将sql server占用内存控制在80%较为合理。为什么要控制sql server占用内在80%较为合理,因为sql server占用内存的主要原因是缓存,只有合理最大化的利用内存缓存数据才能提高访问速度。而服务器本身还需要一定的内存远行,所以只需要预留20%的内存给服务器使用足够,这样就留有最大化的内存给sql server使用。当然,这个不是标准值,还要根据服务器的负载情况来判定,如果设置80%还是服务器内存使用率比较高,可以再调低些。
操作步骤:
管理员用户登录数据库客户端(Microsoft SQL Server Management Studio),在实例名(树形菜单根节点,显示登录名那栏)上右键,选择属性-->内存,设置“最大服务器内存”,单位为MB,可根据实际内存调整。
根据需求自己调整可分配给他的内存
确定后,内存会慢慢降下来了。
- 本文标题: sql server windows NT占用内存超过90%
- 文章分类:【SQLServer】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
- 上一篇:WPF创建MVVM项目
- 下一篇: LayuiAdmin如何在vscode里面运行