服务器内存配置

选项

默认

允许的最小值

建议

最小服务器内存 (MB)

0

0

0

最大服务器内存 (MB)

2,147,483,647 兆字节 (MB)

128 MB

75% 的可用系统内存未被其他进程(包括其他实例)占用

在SSMS中设置步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 选择“服务器属性”窗口的“内存”页。 这会显示最小服务器内存和最大服务器内存的当前值。
  3. 在“服务器内存”选项中,输入最小服务器内存和最大服务器内存所需的数字

配置每次查询分配的最小内存

“每次查询占用的最小内存”选项指定将分配给查询执行时所需要的最小内存量 (KB)。

在SSMS中设置步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 单击 “内存” 节点。
  3. 在“每次查询占用的最小内存”框中,输入将分配给查询执行时所需要的最小内存量 (KB)。

配置最大并行度

对于每个并行计划的执行,并行度设置了运行单个语句时所使用的处理器数量。

服务器配置

处理器数目

指南

具有单个 NUMA 节点的服务器

小于或等于 8 个逻辑处理器

将 MAXDOP 保持为小于或等于逻辑处理器的数量

具有单个 NUMA 节点的服务器

大于 8 个逻辑处理器

将 MAXDOP 保持为 8 个

具有多个 NUMA 节点的服务器

每个 NUMA 节点拥有小于或等于 16 个逻辑处理器

将 MAXDOP 保持为小于或等于每个 NUMA 节点的逻辑处理器的数量

具有多个 NUMA 节点的服务器

每个 NUMA 节点大于 16 个逻辑处理器

将 MAXDOP 保持为每个 NUMA 节点逻辑处理器数量的一半,最大值为 16

在SSMS中设置的步骤如下:

  1. 在“对象资源管理器”中,右键单击所需的实例,然后选择“属性”。
  2. 选择“高级”节点。
  3. “最大并行度” 框中,选择执行并行计划时所使用的最大处理器数

配置最大工作线程数

SQL Server 使用操作系统的本机线程服务来确保满足以下条件:

  • 一个或多个线程同时支持 SQL Server 支持的每个网络。
  • 一个线程处理数据库检查点。
  • 一个线程池处理所有用户。

当设置为0是,默认最大值:

Number of logical CPUs

32-bit computer (up to SQL Server 2014 (12.x))

64-bit computer (up to SQL Server 2016 (13.x) SP1)

64-bit computer (starting with SQL Server 2016 (13.x) SP2 and SQL Server 2017 (14.x))

<= 4

256

512

512

8

288

576

576

16

352

704

704

32

480

960

960

64

736

1472

1472

128

1248

2496

4480

256

2272

4544

8576

在SSMS中设置的步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 选择“处理器”节点。
  3. 在“最大工作线程数”框中,键入或选择一个介于 128 到 65,535 之间的值。

配置网络数据包大小

网络数据包大小选项设置整个网络中使用的数据包大小(以字节为单位)。 数据包是具有固定大小的数据块区,用于在客户端与服务器之间传输请求和结果。 默认数据包大小为 4,096 个字节。对于加密连接,network packet size 的最大值为 16,383 字节。

在SSMS中设置的步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 选择“高级”节点。
  3. “网络” 下,选择 “网络数据包大小” 框的值。

配置用户连接数(需要重启)

user connections 选项指定 SQL Server实例上允许同时建立的最大用户连接数。在大多数情况下,没有必要更改此选项的值。 默认值为 0,表示允许的最多用户连接数为 (32,767) 。

在SSMS中设置步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 选择“连接”节点。
  3. “连接” 下面的 “最大并发连接数” 框中,键入或选择一个介于 0 到 32767 之间的值,以设置允许与 SQL Server实例同时连接的最大用户数量。
  4. 重新启动 SQL Server。
--Transact-SQL
select * from sys.configurations

配置远程访问(需要重启)

远程访问配置选项可以控制从运行 SQL Server 实例的本地或远程服务器执行存储过程.

这是一项已弃用的 SQL Server 到 SQL Server 通信功能,在 SQL Server的未来版本中将删除此功能。

在SSMS中设置步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 选择“连接”节点。
  3. “远程服务器连接” 下,选中或清除 “允许远程连接到此服务器” 复选框
--Transact-SQL
select * from sys.configurations

配置恢复间隔

“恢复间隔(分钟)”选项定义了恢复某一数据库所需时间的上限。 SQL Server 数据库引擎 使用为该选项指定的值确定 自动检查点 对给定数据库发出的大致频率。默认恢复间隔值为 0,这将允许 数据库引擎 自动配置恢复间隔。 通常,对于活动数据库,该默认恢复间隔将导致大约一分钟执行一次自动检查点检查,并且导致不到一分钟的恢复时间。

在SSMS中设置步骤如下:

  1. 在对象资源管理器中,右键单击服务器实例,再选择 “属性”
  2. 选择“数据库设置”节点。
  3. “恢复” 下的 “恢复间隔(分钟)” 框中,键入或选择一个介于 0 到 32767 之间的值,以设置 SQL Server 在启动时用于恢复每个数据库花费的最长时间(分钟)。 默认值为 0,指示由 SQL Server自动配置。 实际上,这表示每个数据库的恢复时间不超过 1 分钟,对于活动的数据库大约每 1 分钟有一个检查点。

配置查询等待值

内存密集型查询(如涉及排序和哈希的查询)在没有足够内存运行查询时会被排队。查询等待选项指定了查询在超时前等待资源的时间,单位是秒(从 0 到 2147483647)。该选项的默认值为 -1。 这意味着超时值为预计查询时间的 25 倍。

在SSMS中设置步骤如下:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 单击 “高级” 节点。
  3. “并行” 中,为“查询等待值” 选项键入所需的值。

配置压缩备份

backup compression default 选项确定默认情况下服务器实例是否创建压缩的备份。

在SSMS中查看或配置备份压缩默认值选项:

  1. 在对象资源管理器中,右键单击服务器并选择 “属性”
  2. 单击 “数据库设置” 节点。
  3. 在“备份和还原” 下,“压缩备份” 显示了 backup compression default 选项的当前设置。 该设置确定压缩备份的服务器级默认设置,如下所示:
  • 如果未选中 “压缩备份” 框,在默认情况下将不压缩新备份。
  • 如果 “压缩备份” 框已选中,则默认情况下将压缩新备份。

配置 SQL Server 错误日志

在SSMS中打开“配置 SQL Server 错误日志”对话框

  1. 在对象资源管理器中,展开 SQL Server 的实例,展开“管理”,右键单击“SQL Server 日志”,再单击“配置”。
  2. “配置 SQL Server 错误日志” 对话框中,从以下选项中进行选择。
    a. 日志文件计数
    限制错误日志文件在回收之前的数目
    若选中此选项,将限制在错误日志回收前可以创建的错误日志数。 每次启动 SQL Server 实例时都将创建新的错误日志。 SQL Server 将保留前六个日志的备份,除非选中此选项并在下面指定一个不同的最大错误日志文件数。
    最大错误日志文件数
    指定错误日志文件回收前创建的最大存档错误日志文件数。 默认值为 6,不包括当前文件。 该值决定 SQL Server 在回收备份日志前保留的以前的备份日志的数量。
    b. 日志文件大小
    错误日志文件的大小上限(以 KB 为单位)
    可以设置每个文件的大小量(以 KB 为单位)。 如果将它保留为 0,则日志大小不受限制

配置数据库引擎访问的文件系统权限

在SSMS中向文件系统授予对每个服务 SID 的权限:

  1. 使用 Windows 资源管理器,导航到存储数据库文件的文件系统位置。 右键单击文件系统文件夹,然后选择“属性”。
  2. 在“安全性”选项卡上,选择“编辑”,然后选择“添加”。
  3. 在“选择用户、计算机、服务帐户或组”对话框中,选择“位置”,在位置列表的顶部选择你的计算机名称,然后选择“确定”。
  4. 在“输入要选择的对象名称”框中,键入每个服务 SID 的名称。 若要找到它,请参阅配置 Windows 服务帐户和权限。 (对于 数据库引擎 每个服务 SID 名称,将 NT SERVICE\MSSQLSERVER 用于默认实例,或将 NT SERVICE\MSSQL$InstanceName 用于命名实例。)
  5. 选择“检查名称”以验证该条目。 (如果验证失败,可能会提示未找到该名称。选择“确定”时,将显示“找到多个名称”对话框。现在,选择每个服务 SID 名称,NT SERVICE\MSSQLSERVER 或 NT SERVICE\MSSQL$InstanceName,然后选择“确定”。再次选择“确定”以返回到“权限”对话框。)
  6. 在“组或用户”名称框中,选择每个服务 SID 名称,然后在“<名称> 的权限”框中,针对“完全控制”选中“允许”复选框。
  7. 选择“应用”,然后选择“确定”两次即可退出。