当前位置:首页 > 内存 > 正文

sql数据库内存设置

  • 内存
  • 2024-06-09 18:36:52
  • 9566

一、怎么设置sql2008数据库最大服务器内存1.1.选择“开始>所有程序>MicrosoftSQLServer2008R2>SQLServerManagementStudio”。系统显示“连接服务器”界面。
2.2.输入各种数据,点击连接
3.3.系统显示“对象资源管理器”界面
4.4.右键单击​​上图,点击弹出的选择“属性”快捷菜单。
5.在左侧导航栏中选择“内存”,将右侧“最大服务器内存”的值设置为物理内存的60%。本例以8G内存为例6。6.最后点击确定完成设置。


二、怎样解决SQLServer内存不断增加问题为了实现这一点,数据库引擎获取尽可能多的可用内存,同时留下足够的可用内存以防止操作系统换出内存。初始化完成后,SQLServer实例通常具有8到12MB的内存。一旦实例完成初始化,就不再获取内存,直到用户连接到该实例并开始创建工作负载。此时,实例将继续根据需要收集内存以支持工作负载。随着越来越多的用户连接并运行查询,SQLServer将需要更多内存来支持需求。实例将继续收集内存,直到达到自己的内存分配目标,并且在达到该目标的下限之前不会释放任何内存。为了获得尽可能多的内存而不生成不必要的分页I/O,每个SQLServer实例都配置了收集内存的目标,直到机器的可用物理内存大小范围从4MB到10MB。选择这个范围是因为测试表明WindowsNT和Windows2000都具有最小的内存交换,直到内存分配等于可用物理内存减去4MB。处理繁重工作负载的SQLServer实例会在范围的下限(4MB)保留可用物理内存;SQLServer实例的目标会随着工作负载的变化而变化。随着越来越多的用户连接并创建更多工作,实例往往会获取更多内存,以将可用内存保持在4MB限制。随着工作负载的减轻,实例将其目标调整为10MB可用空间,并为操作系统释放内存。将可用空间量保持在10MB到4MB之间将防止WindowsNT或Windows2000执行过多的分页操作,同时允许SQLServer获得尽可能大的缓存而不引起额外的更改。实例的目标内存配置与相对于可用池大小的数据库缓冲区的页面请求有关。在任何实时情况下,缓存页请求的总数取决于满足当前正在执行的查询所需的数据页数。如果与缓存中的页面数量相比,对数据页面的需求很大,则缓存中的每个现有页面可能会在相对较短的时间内被新页面替换。这可以使用缓存管理器对象的页面生命周期性能计数器来测量。对相对较小的缓存要求较高的情况会导致寿命缩短,并且最终的结果是I/O增加,因为页面通常必须在被多个读取逻辑引用之前进行重写。为了缓解这个问题,数据库引擎可以获取更多内存来增加缓存大小。当页面生命周期很长时,数据库引擎将可用内存定位在目标范围的高端(10MB);当页面生命周期较短时,数据库引擎将可用内存定位在目标范围的低端(4MB)。)。当其他应用程序在运行SQLServer实例的计算机上启动时,它们会消耗内存,导致可用物理内存量低于SQLServer目标水平。然后,SQLServer实例从其地址空间释放足够的内存,以将可用内存量返回到SQLServer目标。如果其他应用程序停止运行并且可用内存增加,SQLServer实例会增加其内存分配的大小。SQLServer每秒可以释放和获取几MB内存,从而使其能够快速调整以适应内存分配的变化。您可以通过配置允许SQLServer使用的最大内存来设置限制:Minservermemory和maxservermemory的影响minservermemory和maxservermemory配置选项设置SQLServer数据库引擎使用的内存量的上限和下限。数据库引擎不会立即接收minservermemory中指定的内存量。数据库引擎开始时仅使用初始化所需的内存。随着数据库引擎的工作负载增加,它将不断获取支持工作负载所需的内存。在达到minservermemory中指定的内存量之前,数据库引擎不会释放任何所需的内存。当达到minserver内存时,数据库引擎会使用标准算法收集并释放所需的内存(将操作系统可用内存保持在4MB到10MB之间)。唯一的区别是数据库引擎永远不会将内存分配减少到minservermemory指定的级别以下,并且永远不会获取比maxservermemory指定的内存更多的内存。数据库引擎接收的内存量完全取决于实例上的工作负载。不处理大量请求的SQLServer实例可能永远不会达到minserver内存。如果为minservermemory和maxservermemory指定相同的值,则当分配给数据库引擎的内存达到该值时,数据库引擎将停止动态释放和获取内存。如果您在运行SQLServer实例的计算机上频繁启动或停止其他应用程序,则启动这些应用程序所需的时间可能会随着SQLServer实例分配和释放内存而延长。此外,如果SQLServer是在一台计算机上运行的众多服务器应用程序之一,则系统管理员可能需要控制分配给SQLServer的内存量。