浅谈优化SQLServer服务器内存配置
内存是影响Microsoft SQLServer系统性能的重要因素。安装SQLServer数据库后,可为具有3 2 MB物理内存的机器配置1 6 MB的可用内存配置,并且默认配置了4 MB的内存,可用于具有1 6 MB物理内存的机器。
安装Microsoft SQLServer数据库后必须定义内存选项(内存),并且配置值为2 GB。
为了确定SQLServer系统最合适的内存要求,您可以减去Windows NT 4 .0所需的内存以及某些其他总体物理内存要求。
理想的情况是在不生成页面计划的情况下为SQLServer分配尽可能多的内存。
1 计划SQLSERVER的可用内存,取决于物理内存。
在大多数生产环境中,服务器提供的物理内存为1 2 8 MB的6 4 MB,有时为2 5 6 MB。
只要配置合适,它就可以完全满足SQLServer内存需求。
下表是我推荐的SQLServer内存津贴的建议计划。
分配给SQLServer调整值的物理记忆(单位:2 KB)8 MB4 MB2 04 8 1 6 MB8 MB4 09 6 3 2 MB1 6 ~1 8 MB8 1 9 2 ~9 2 1 6 4 8 MB2 8 1 08 mb5 1 2 00 ~ 5 5 2 9 6 2 5 6 MB2 1 6 ~ 2 2 6 MB1 1 05 9 2 ~ 1 1 5 7 1 2 5 1 2 MB4 6 4 ~ 4 7 2 MB2 3 7 5 6 8 ~ 2 4 1 6 6 4 Here is the SQLSERVER MEMORY PERMATE METHOD (MEMORY) (1 ) from Microsoft Start SQLENTERPRISEMAINER in FTSQLSERVER assembly; (2 )在ServerManager窗口中选择“服务器”菜单选项; (3 )从“服务器”菜单中选择“配置”选项; (4 )在“ ServerConfiguration”对话框中选择“配置”选项卡,而“配置”窗口显示了配置选项列表; (5 )选择“内存”元素,然后在“当前”列中填充新值; (6 )停止并重新启动SQLServer服务,以使参数生效。
2 开发虚拟内存并增加SQLServer的可用内存。
当SQLServer系统必须真正开发可用的内存时,当磁盘空间足够并相应地增加SQLServer的可用内存时,它必须扩展虚拟内存。
特定方法是系统管理员首先扩展服务器的虚拟内存,然后引用上表以增加SQLServer的可用内存。
关键是要深入确定放大内存并根据系统负载情况优化配置。
3 .使用Tempinram SQLServer使用tempdb临时数据库作为工作空间,以在询问连接操作时对临时表进行排序或创建临时表。
在RAM中创建tempDB可以大大提高系统操作的性能,并且由于每次重新启动服务器时TemPDB都会重建,因此即使有异常停止,也可以作为功率故障的故障。
要在RAM中创建tempdb,您可以使用sp_configure来定义它。
有关更多详细信息,请参阅相关信息。
由于tempdbinram使用的内存由系统与内存主体分开分配,因此分离了SQLServer内存选项的内存池。
使用tempdbinram将减少整个系统的可用内存必须根据SQLServer和Server的功能进行配置,否则它可以适得其反并影响系统性能。
此外,即使不使用tempdbinram,TEMPDB数据库空间的适当增加也可以提高数据库的速度。
4 注释(1 )建议SQLServer在生产环境中定义不少于3 2 MB的内存,并尽量不要在数据库服务器上运行其他应用程序; (2 )扩展虚拟内存并增加SQLServer的可用内存,必须考虑物理内存和磁盘空间许可证的使用; (3 )在可能的情况下,必须保留系统的其他内存。
这样,当在服务器上打开服务或添加过程而不修改SQLServer内存配置时,NT服务器的执行速度将不会受到影响(它变得非常慢)。
通常认为最低为2 MB和2 0 MB。
5 使用内存配置来解决统计服务器的问题。
一旦委托统计服务器单元,执行速度就会缓慢。
在检查原因后,已经发现SQLServer中的内存选项(内存)只是默认安装值-1 6 MB(以及一个物理内存的1 2 8 MB服务器)。
当将内存的值调整为1 00 MB时,它在1 000 MB中意外更改,这使SQLServer服务无法启动,并且无法打开统计数据库,因此它不能输入Sqlenterpr.ismairer已修改了内存参数。
由于最近没有备份商业数据,因此除非这样做,否则我无法重新安装SQLServer数据库。
我试图使用命令参数控件重新启动SQLServer服务,但是它们都没有起作用,而且我很困难。
经过一丝细致的分析,我们提出,由于SQLServer可用内存调整值远大于物理内存,因此无法启动SQLServer服务,为什么不扩展虚拟内存?在尝试将计算机的虚拟内存扩展到1 000 MB并重新启动之后,成功启动了SQLServer数据库,并解决了问题。
6 目前,大多数单位委托委托的Microsoft SQLServer数据库服务器的物理内存通常大于6 4 MB。
例如,中国农业银行省和市政分支机构的统计服务器配备了1 2 8 MB的身体记忆。
只要根据上述方法对NT和SQLSERVER内存配置进行了合理计划和优化,以便可以尽可能达到参数,应用程序系统将能够充分使用设计功能并满足商业需求。
如何解决SQLServer占内存过多的问题
我们需要准备计算机的材料。I.在我的计算机中,搜索并访问SQL到达内存,在右侧的右手中选择重新启动并重新启动它们。
2 检查一下,SQL服务仍然需要大量的内存,并且内存体验基本上没有改变。
3 然后重新启动SQL服务。
4 然后重新启动SQL代理。
V.最后,如果您查看工作经理,您会发现记忆体验会减少。
sqlserver 占用内存太高怎么解决
步骤1 :打开企业管理器和双击以输入要修改的MSSQL。步骤2 :右键单击左侧的MSSQL上,选择属性,然后弹出SQLServer属性(配置)对话框(最好是SQLSP4 补丁程序)步骤3 :单击“内存”选项卡。
在这里,您会看到MSSQL默认值为使用最大内存,即您所有的内存。
根据您的需求,设置其最大值(通常是物理内存1 2 8 m)和最小值(通常是最大内存的1 /4 )。
步骤5 :设置后,重新启动MSSQL服务,配置将生效!
我的电脑不知怎么了,sql server服务占用了大量内存,求助处理.
重新配置Microsoft®SQLSERVER™实例在两个服务器存储器选项MinerMemory和MaxServerMemory中使用的内存量。默认情况下,SQLServer可以通过系统资源动态更改其内存需求。
MineServerMemory的默认设置为0,MaxServerMemory的默认设置为2 1 4 7 4 8 3 6 4 7 可为MaxServerMemory指定的最小内存量为4 MB。
当SQLServer动态使用内存时,它要求系统定期检测可用的物理内存量。
SQLServer根据服务器活动增加或缩小缓存内存,以保持4 MB和1 0MB之间的物理内存。
这避免了Microsoft WindowsNT®4 .0或Windows 2 000页面更换。
如果可用的内存较少,则SQLServer FREES内存到Windows或Windows 2 000,通常会继续使用可用列表。
如果有更多内存可用,SQLServer将记忆再次缓存。
SQLSERVER仅在工作负载需要更多内存时增加了缓存内存的内存; 冬眠中的服务器不会增加其缓存内存。
推荐的配置允许SQLServer动态使用内存。
但是,可以手动设置内存选项,并且可以禁用SQLServer动态使用内存的能力。
在设置SQLServer使用的内存量之前,您应该通过从所有物理内存中减去Windows NT 4 .0或Windows 2 000和任何其他实例(如果计算机不专用于SQLServer)来确定适当的内存设置。
这是可以分配给SQLServer的最大内存量。
请注意,如果您已经安装并运行了全文搜索支持功能(Microsoft Search Service或MSSearch),则必须手动设置MaxServerMemory选项,以保留足够的内存以使MSSearch服务运行。
必须使用Windows NT 4 .0虚拟内存大小调整MaxServerMemory设置,以使全文搜索保留的虚拟内存是物理内存的1 .5 倍(不包括计算机中其他服务所需的虚拟内存)。
应该以这种方式配置SQLServerMaxServerMemory选项,以便留下足够的虚拟内存来满足全文本检索的内存要求。
所有虚拟内存 - (SQLServer最大虚拟内存 +其他服务所需的虚拟内存)> = 1 .5 倍物理内存。
手动设置内存选项有两个主要方法用于手动设置SQLServer内存选项:第一个方法是将MinerMemory和MaxServerMemory设置为相同的值。
该值对应于分配给SQLServer的固定数量的内存。
第二种方法是将MinerMemory和MaxServerMemory的数量设置为范围部分。
当系统或数据库管理员想要配置SQLServer实例以适应在同一计算机上运行的其他应用程序的内存要求时,此方法很有用。
MinServerMemory确保SQLServer实例使用的最小内存量。
SQLServer启动时,未立即分配矿机内存中指定的内存量。
但是,当由于客户端负载而导致内存使用率达到此值时,除非降低矿工存储器值,否则SQLServer将无法从分配的缓冲池中释放内存。
这表明SQLServer分配了MineServerMemory中指定的内存量。
如果服务器上的负载无需分配矿工内存中指定的内存量,则SQLServer将以更少的内存运行。
MaxServerMemory可防止SQLServer使用超过指定量的内存,以便其余可用的内存可以快速运行其他应用程序。
启动时,SQLServer不会立即分配MaxServerMemory中指定的内存。
随着SQLServer的需求,内存使用率增长,直到指定的值达到MaxServerMemory。
除非增加MaxServer内存值,否则SQLServer不能超过此内存使用值。
当重要的服务器启动时,在地址窗口扩展名(awe)内存模式中运行的SQLServer实例确实分配了MaxServerMemory中指定的全部内存量。
有关敬畏记忆的更多信息,请参阅管理敬畏记忆。
应用程序启动和SQLServer释放内存之间将有短时间的延迟,可以使用MaxServerMemory避免使用,从而提高其他应用程序的性能。
只有将与SQLServerMinserverMemory共享同一服务器的新应用程序仅在程序启动时出现任何问题时才设置。
最好让SQLServer使用所有可用的内存。
如果手动设置内存选项,请确保适当设置复制服务器。
如果服务器是远程分销商或发布者/分销商组合,则必须至少分配1 6 MB的内存。
理想情况下,应尽可能多的内存分配给SQLServer,而不会导致系统将页面交换为磁盘。
该值取决于系统的变化很大。
例如,在3 2 MB系统中,将1 6 MB分配给SQLServer可能是适当的。
在6 4 MB系统中,分配4 8 MB可能是合适的。
当增加SQLServer内存的数量时,应确保有足够的磁盘空间可容纳操作系统虚拟内存的支持文件(pagefile.sys)。
有关虚拟内存支持文件的更多信息,请参见Windows NT 4 .0和Windows 2 000文档。
指定的内存量必须满足SQLSERVER静态内存(核心开销,打开对象,锁等)和数据缓存(也称为缓存)的要求。
如有必要,请在系统监视器中使用统计信息(Windows NT 4 .0中的性能监视器)来帮助调整内存值。
仅当您添加或减少内存或更改系统的使用方式时,才应更改这些值。
虚拟内存管理器Windows NT 4 .0和Windows 2 000准备提供4 GB虚拟地址空间,其中较低的2 GB地址空间专用于每个过程,并且可以由应用程序使用。
较高的2 GB地址保留供系统使用。
Windows NTServer Enterprise Edition为每个MicrosoftWin3 2 ®应用程序提供了4 GB的虚拟地址空间,其中较低的3 GB地址空间专用于每个过程并可用于应用程序。
系统保留并使用较高的1 GB地址。
Windows NTV虚拟内存管理器(VMM)将4 -GB地址空间映射到可用的物理内存空间。
根据硬件平台的支持,可用的物理内存可以高达4 GB。
Win3 2 应用程序(例如SQLServer)只能识别虚拟(或逻辑)地址,而不是物理地址。
应用程序在给定时刻使用多少物理内存由可用的物理内存和VMM确定。
应用程序无法直接控制物理内存。
虚拟地址系统(例如Windows NT 4 .0或Windows 2 000)允许过度承担物理内存,这使得虚拟内存与物理内存的比率大于1 :1 因此,较大的程序可以在具有不同物理内存配置的计算机上运行。
但是,应用胜于组合平均工作组的虚拟内存可能会导致性能差。
SQLServer可以将内存锁定到工作集中。
由于内存已锁定,因此运行其他应用程序时可能会出现过时的错误。
如果存在不符的错误,则可能是分配给SQLServer的内存过多。
settingSetsize选项(通过SP_Configure或SQLServer Enterprise Manager设置)可以将锁定的内存无效为工作集功能。
默认情况下,禁用了设置塞式选项。
手动将SQLServer配置为超过物理内存的虚拟内存导致较低的性能。
此外,必须考虑Windows NT 4 .0或Windows 2 000操作系统的内存要求(大约1 2 MB,由于应用开销而略有不同)。
当增加了SQLServer的配置参数时,系统开销也可能会增加,因为Windows NT 4 .0或Windows 2 000需要更多的居民内存来支持其他线程,页面表等。
允许SQLServerto动态地使用内存可以避免内存与内存相关的性能问题。
MinServerMemory和MaxServerMemory是高级选项。
如果要使用SP_Configure系统存储过程更改此选项,则必须将ShowadvancedOptions设置为1 ,该过程立即生效(无需停止并重新启动服务器)。
SQL Server占用内存过高,什么原因导致的,用什么方法可以解决
经常使用MSSQL的朋友会发现,在一个小型网站运行几天后,MSSQL会吞噬服务器的所有内存。此时,重新启动服务器或MSSQL以释放内存。
有些人认为MSSQL存在纪念泄漏问题,但实际上,微软给了我们一个明确的解释:启动SQLServer后,SQLServer的内存使用将继续定期增加,即使在服务器上的活动很少,也不会放手。
此外,任务管理器和性能监视器将表明计算机上的可用物理内存定期下降,直到可用内存降至4 至1 0 MB。
只有这种情况并不意味着纪念泄漏。
这种行为是正常的,是SQLServer Voyage池的预期行为。
默认情况下,SQLServer根据操作系统报告的物理内存负载增加了动态并缩小缓冲池(缓存)的大小。
只要有足够的记忆来防止掉期(4 至1 0 MB之间),SQLServerver Village Village Village盆地将继续增长。
就像与SQLServer同一机器上分配给内存的其他进程一样,SQLServer缓冲区管理器将在需要时释放内存。
SQLServer可以每秒发布并获得更多的内存兆字节,因此它可以快速适应内存图的变化。
可以指定更多信息通过服务器通过服务器 - 内存最小值和服务器内存最大配置选项来指定SQLServer数据库引擎使用的内存量(缓冲池)的上限和下限。
Before specifying maximum options for the server memory and maximum memory, see the reference information in the section entitled 'Memory' in the following Microsoft Knowledge Base Article: 3 1 9 9 4 2 Howto: determination (Strong Database Platform on Windows Platform. SQLSERVER BUFFER POOL. Configure SQLServer dedicated byte over the maximum of the server memory. For other information on allocation in this unreserved memory area, please click on the article number below to see the corresponding article in Microsoft知识库:3 1 6 7 4 9 PRB:使用大量数据库时可能没有足够的虚拟内存。
“内存”选项卡。
根据您的需求,设置其最大值(通常是物理内存1 2 8 m)和最小值(通常是最大内存的1 /4 )。
步骤5 :设置后,重新启动MSSQL服务,配置生效!