如何设置SQLServer数据库内存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置SQLServer数据库内存相关的知识,希望对你有一定的参考价值。
1、打开SQL Sever 2008 R2数据库
2、在打开的连接到服务器对话框中,输入相关连接信息后,点击“连接”
3、右键数据库根节点,选择“属性”
4、弹出服务器属性页,选择页中包含常规、内存、处理器等选项
5、在选择页中我们点击“内存”,我们可以修改每次查询占用的最小内存值
6、在选择页中切换到“安全性”,我们可以重新设置服务器身份验证的模式
参考技术A如果能在实例级别为同一SQL服务器上的不同实例限制其能够使用的最大和最小内存,就能降低这种情况对其他应用系统的影响。具体的操作如下:
(一)实例的最大和最小内存设置
右击数据库,选择属性,如图。
为实例设置合适的最大和最小内存,如图。
(二)为操作系统预留足够的内存
假如一台8GB的服务器,我们可以限制数据库使用的内存上限不超过6GB,剩下的2GB留给操作系统使用。
(三)配置lock pages in memory
查看SQL进程的启动账户,如图。
在组策略里设置启动SQL Server的账户拥有锁定内存页的权限。如图。
在下图的添加用户或组界面,添加SQL server的服务启动账户,如图。
设置完成后,需要关注的两个问题:
1、因为SQL Server锁定了内存页,当Windows内存告急时,SQL Server就不能对Windows的内存告急做出响应,因为SQL Server的特性是内存有多少用多少,因此很有可能在无法做出对Windows低内存的响应时造成Windows的不稳定甚至崩溃。因此开启了”Lock Page In Memory”之后,要限制SQL Server Buffer Pool的内存使用
2、还有一个问题是当Buffer Pool通过AllocateUserPhysicalPages分配内存时,我们在任务管理器中看到的sqlservr.exe占用的内存就仅仅包含Buffer Pool中非Data Cache部分和MemToLeave部分,而不包含Data Cache部分,因此看起来有可能造成sqlservr.exe只占用了几百兆内存而内存的使用是几十G。这时我们就需要在Perfmon.exe中查看SQL Server:Memory Manager\\Total Server Memory计数器去找到SQL Server真实占用的内存。(由于SQL server 2012内存管理机制的变化,所以个人认为这一条原则可能只适用于SQL server 2008R2以前的数据库版本)
参考技术B 在安装有SQLServer数据库的计算机上,我们在使用数据库的过程中,有时候会在任务管理器里发现sqlservr.exe这个进程的内存和CPU占用率较高。接下来我们来看一下,如何解决上面这个问题,需要设置SQLServer数据库的内存配置。登录数据库,这里使用的是SQLServer2008,右键点击最上方的服务器名,在弹出的菜单中,点击【属性】
打开服务器属性窗口。默认显示的是第一项【常规】内容,点击第二项【内存】进行内存配置。
点击【内存】后,打开服务器内存选项配置界面。这里的【使用AWE分配内存】可以对内存进行扩展支持,我们要做的是更改下方的最大服务器内存。这个数值根据自己服务器内存大小来做适当设置。
个人建议设置本机内存的一半或稍微高一点,如机器内存为2G,那么我们这里填写1000。需要注意的是内存设置调小以后,在数据库执行较复杂SQL语句的时候,可能会比较慢,出现这种情况,我们再适当上调最大内存配置大小。 参考技术C 1、起动 SQL Server Management Studio。
2、对目录材的最高节点 点右键 点“属性”,点内存,然后自个去设。
3、注意,内存的设置应根据数据库的实际情况及技术人员的经验去设。在生产用的服务器上,原则是,保存别的应用的足够内存的情况下,省下的全给它。 参考技术D 最简单的方法:sql管理器-- 对象资源管理器--根节点--右键菜单--属性--内存--修改
可以先在该界面按F1看帮助。
代码
查看
SELECT * FROM sys.configurations;
看到name=‘max server memory (MB)’
设置 因为该项的 is_advanced=1 so 以下代码有开关部分。
--开启
EXEC sys.sp_configure N'show advanced options',N'1';
RECONFIGURE WITH OVERRIDE;
GO
--设置 如设置为 2G,注意单位,2048MB
EXEC sys.sp_configure N'max server memory (MB)',N'2048';
RECONFIGURE WITH OVERRIDE;
GO
--关闭
EXEC sys.sp_configure N'show advanced options',N'0';
RECONFIGURE WITH OVERRIDE;
GO
如图 SQL Server数据库占用的内存每天都在自己变大 实在受不了了 如何完全的删除它 包括注?
如图 SQL Server数据库占用的内存每天都在自己变大 实在受不了了 如何完全的删除它 包括注册表这些东西 不想要了
参考技术A 启动项里面关闭自动启动服务直接删删不干净的, 不像重装系统就找个sqlserver同版本的安装包, 步骤中有选卸载功能的
以上是关于如何设置SQLServer数据库内存的主要内容,如果未能解决你的问题,请参考以下文章