问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SQL Server内存配置详解

创作时间:
作者:
@小白创作中心

SQL Server内存配置详解

引用
1
来源
1.
https://docs.netapp.com/zh-cn/ontap-apps-dbs/mssql/mssql-memory-configuration.html

本文主要介绍了SQL Server的内存配置相关知识,包括最大服务器内存、非一致内存访问(NUMA)、索引创建内存以及每个查询的最小内存等关键概念和配置方法。这些内容对于数据库管理员和技术人员来说具有较高的实用价值。

下一节将介绍优化数据库性能所需的SQL Server内存设置。

最大服务器内存

最大服务器内存选项用于设置SQL Server实例可以使用的最大内存量。通常,如果多个应用程序运行在运行SQL Server的同一服务器上,并且您希望保证这些应用程序具有足够的内存来正常运行,则使用此方法。

某些应用程序仅在启动时使用可用的任何内存,而不会请求额外内存,即使它们受到内存压力也是如此。这就是最大服务器内存设置的作用所在。

在包含多个SQL Server实例的SQL Server集群上,每个实例可能会争用资源。为每个SQL Server实例设置内存限制有助于保证每个实例的最佳性能。

RAM NetApp建议为操作系统至少保留4GB到6GB的内存,以避免出现性能问题。

使用SQL Server Management Studio调整最小和最大服务器内存

使用SQL Server Management Studio调整最小或最大服务器内存需要重新启动SQL Server服务。您还可以使用Transact SQL (T-SQL)使用以下代码调整服务器内存:

EXECUTE sp_configure 'show advanced options', 1
GO
EXECUTE sp_configure 'min server memory (MB)', 2048
GO
EXEC sp_configure 'max server memory (MB)', 120832
GO
RECONFIGURE WITH OVERRIDE

非一致内存访问

非一致内存访问(Non-uniform Memory Access, NUMA)是一种内存访问优化技术,有助于避免处理器总线上的额外负载。

如果在安装了SQL Server的服务器上配置了NUMA,则无需进行其他配置,因为SQL Server可识别NUMA,并且在NUMA硬件上性能良好。

索引创建内存

index create memory选项是另一个高级选项,通常不需要更改默认值。

它控制最初为创建索引而分配的最大RAM量。此选项的默认值为0,这意味着它由SQL Server自动管理。但是,如果在创建索引时遇到困难,请考虑增加此选项的值。

每个查询的最小内存

运行查询时,SQL Server会尝试分配最佳内存量,以便高效运行。

默认情况下,“每个查询的最小内存”设置会为要运行的每个查询分配>=到1024KB的内存。最佳做法是,将此设置保留为默认值,以便SQL Server能够动态管理为索引创建操作分配的内存量。但是,如果SQL Server的RAM超过高效运行所需的RAM,则提高此设置可以提高某些查询的性能。因此,只要SQL Server、任何其他应用程序或操作系统未使用服务器上的可用内存,则提高此设置就可以提高SQL Server的整体性能。如果没有可用内存,则增加此设置可能会影响整体性能。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号