内存配置
下一节将介绍优化数据库性能所需的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
非一致内存访问
非一致内存访问(Nonun均匀 内存访问、NMA)是一种内存访问优化技术、有助于避免处理器总线上的额外负载。
如果在安装了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的整体性能。如果没有可用内存,则增加此设置可能会影响整体性能。