服务器配置选项

适用于:SQL ServerAzure SQL 托管实例

可以使用 SQL Server Management Studio 或 sp_configure 系统存储过程通过配置选项来管理并优化 SQL Server 和 Azure SQL 托管实例资源。 大多数常用的服务器配置选项可以通过 SQL Server Management Studio 来使用;而所有配置选项都可通过 sp_configure 来访问。 在设置这些选项之前应该认真考虑这些选项对系统的影响。 有关详细信息,请参阅查看或更改服务器属性 (SQL Server)

重要说明

高级选项应由经验丰富的数据库管理员更改。

配置选项的分类

配置选项更改仅在发出 RECONFIGURE(在某些情况下,RECONFIGURE WITH OVERRIDE)语句后生效。 如果没有看到配置更改的效果,请检查配置选项的 运行值 是否已更改。

可以使用 sys.configurations 目录视图来确定 配置值value 列)和 运行值value_in_use 列),以及配置选项是否需要重启数据库引擎(is_dynamic 列)。

如果数据库引擎需要重启,选项仅在 value 列中显示更改的值。 重启后,新值会显示在 value 列和 value_in_use 列中。

但有些选项需要在重新启动服务器后,新的配置值才能生效。 如果设置了新值并在重启服务器之前运行 sp_configure,则新值将出现在 sys.configurations 目录视图的 value 列中,而不是出现在 value_in_use 列中。 重启服务器之后,新值将出现在 value_in_use 列中。

注意

config_value 结果集中的 sp_configure 列等效于 value 目录视图的 sys.configurations 列,run_value 等效于 value_in_use 列。

重新配置某些选项可使计划缓存中的计划失效,并编译新计划。 有关详细信息,请参阅 DBCC FREEPROCCACHE

自配置选项是指 SQL Server 根据系统需要进行调整的选项。 大多数情况下,这使您无需手动设置值。 例如,“最大工作线程数”选项和“用户连接数”选项。

以下查询可用于确定是否有任何已配置但未生效的配置值:

SELECT *
FROM sys.configurations
WHERE [value] <> [value_in_use];

如果该值是对配置选项所做的更改,但 value_in_use 不相同,则说明 RECONFIGURE 命令未运行或失败,或者必须重启数据库引擎。

有两个配置选项,其中 valuevalue_in_use 可能不相同,以下为预期行为:

  • 最大服务器内存 (MB) - 0 的默认配置的值将在 value_in_use 列中显示为 2147483647

  • 最小服务器内存 (MB) - 0 的默认配置的值可能显示为 value_in_use 列中的 8(在 32 位系统上)或 16(在 64 位系统上)。 在某些情况下,如果 value_in_use 显示为 0,则实际的 value_in_use8(32 位)或 16(64 位)。

is_dynamic 列可用于确定配置选项是否需要重启。 is_dynamic 列中的 1 值表示,运行 RECONFIGURE 命令时,新值会立即生效。 在某些情况下,数据库引擎可能不会立即评估新值,但在正常的执行过程中会执行此操作。 is_dynamic 列中的 0 值表示,除非重启数据库引擎,否则即使运行 RECONFIGURE 命令,更改的配置值也不会生效。

对于非动态配置选项,无法判断是否已运行 RECONFIGURE 命令来应用配置更改。 在重启数据库引擎以应用配置更改之前,请运行 RECONFIGURE 命令,以确保数据库引擎重新启动时所有配置更改都生效。

配置选项

下表列出了所有可用的配置选项、可能的设置范围及其默认值以及受支持的产品(SQL Server 或 Azure SQL 托管实例)。 配置选项按以下字母代码标记:

  • A = 高级选项,仅应由有经验的数据库管理员或认证的 SQL Server 专业人员更改,并且需要将 show advanced options 设置为 1

  • RR = 需要重启数据库引擎的选项。

  • RP = 需要重启 PolyBase 引擎的选项。

  • SC = 自配置选项。

注意

SQL Server 2014 (12.x) 是 32 位和 64 位作系统上提供的最后一个版本。 所有更高版本仅在 64 位作系统上可用。

配置选项 可能值 SQL Server Azure SQL 托管实例
访问检查缓存桶计数 (A) 最小值:0
最大值:16384
默认值:0
访问检查缓存配额 (A) 最小值:0
最大值:2147483647
默认值:0
即席分布式查询 (A) 最小值:0
最大值:1
默认值:0
ADR 清除程序重试超时(分钟) (A) 最小值:0
最大值:32767
默认值:120
SQL Server 2019 (15.x) 及更高版本
ADR 清理器线程计数 (A) 最小值:1
最大值:32767
默认值:1
SQL Server 2019 (15.x) 及更高版本
ADR 预先分配因素 (A) 最小值:0
最大值:32767
默认值:4
SQL Server 2019 (15.x) 及更高版本
关联 I/O 掩码(A,RR) 最小值:-2147483648
最大值:2147483647
默认值:0
是(仅限 64 位)
关联掩码 (A) 最小值:-2147483648
最大值:2147483647
默认值:0
是(仅限 64 位)
affinity64 I/O 掩码(A,RR) 最小值:-2147483648
最大值:2147483647
默认值:0
是(仅限 64 位)
affinity64 掩码 (A) 最小值:-2147483648
最大值:2147483647
默认值:0
是(仅限 64 位)
代理 XP (A) 1 最小值:0
最大值:1
默认值:0
允许 PolyBase 导出 最小值:0
最大值:1
默认值:0
SQL Server 2016 (13.x) 及更高版本
允许更新

警告:已过时。 请不要使用。 重新配置期间会导致错误。
最小值:0
最大值:1
默认值:0
自动 soft-NUMA 已禁用(A,RR) 最小值:0
最大值:1
默认值:0
备份校验和默认值 最小值:0
最大值:1
默认值:0
备份压缩算法 最小值:0
最大值:1
默认值:0
SQL Server 2022 (16.x) 及更高版本
备份压缩默认值 最小值:0
最大值:1(低于 SQL Server 2022 (16.x) 的版本),或 2(SQL Server 2022 (16.x) 及更高版本)
默认值:0
阻塞进程阈值(秒)(A) 最小值:5
最大值:86400
默认值:0
c2 审核模式(A,RR) 最小值:0
最大值:1
默认值:0
clr 已启用 最小值:0
最大值:1
默认值:0
clr 严格安全性 (A) 最小值:0
最大值:1
默认值:1
SQL Server 2017 (14.x) 及更高版本
列加密 enclave 类型 (RR) 最小值:0
最大值:2
默认值:0
已启用通用标准符合性(A,RR) 最小值:0
最大值:1
默认值:0
已包含数据库身份验证 最小值:0
最大值:1
默认值:0
并行的开销阈值 (A) 最小值:0
最大值:32767
默认值:5
跨数据库所有权链接 最小值:0
最大值:1
默认值:0
游标阈值 (A) 最小值:-1
最大值:2147483647
默认值:-1
每日处理的数据量限制(以 TB 为单位) 最小值:0
最大值:2147483647
默认值:2147483647
每月处理的数据量限制(以 TB 为单位) 最小值:0
最大值:2147483647
默认值:2147483647
每周处理的数据量限制(以 TB 为单位) 最小值:0
最大值:2147483647
默认值:2147483647
数据库邮件 XP (A) 最小值:0
最大值:1
默认值:0
默认全文语言 (A) 最小值:0
最大值:2147483647
默认值:1033
默认语言 最小值:0
最大值:9999
默认值:0
默认跟踪已启用 (A) 最小值:0
最大值:1
默认值:1
禁止从触发器返回结果 (A) 最小值:0
最大值:1
默认值:0
已启用 EKM 提供程序 (A) 最小值:0
最大值:1
默认值:0
已启用外部 REST 终结点 最小值:0
最大值:1
默认值:0
外部脚本已启用 (SC) 最小值:0
最大值:1
默认值:0
SQL Server 2016 (13.x) 及更高版本
已启用外部 xtp dll gen util 最小值:0
最大值:1
默认值:0
SQL Server 2022 (16.x) CU 17 及更高版本
文件流访问级别 最小值:0
最大值:2
默认值:0
填充因子 (%)(A,RR) 最小值:0
最大值:100
默认值:0
FT 爬网带宽(最大值)(A) 最小值:0
最大值:32767
默认值:100
FT 爬网带宽(最小值)(A) 最小值:0
最大值:32767
默认值:0
FT 通知带宽(最大值)(A) 最小值:0
最大值:32767
默认值:100
FT 通知带宽(最小值)(A) 最小值:0
最大值:32767
默认值:0
Hadoop 连接 (RP) 最小值:0
最大值:7
默认值:0
SQL Server 2016 (13.x) 及更高版本
硬件卸载配置(A、RR) 最小值:0
最大值:255
默认值:0
SQL Server 2022 (16.x) 及更高版本
已启用硬件卸载(A,RR) 最小值:0
最大值:1
默认值:0
SQL Server 2022 (16.x) 及更高版本
硬件卸载模式(A,RR) 最小值:0
最大值:255
默认值:0
SQL Server 2022 (16.x) 及更高版本
有疑问的 Xact 解析 (A) 最小值:0
最大值:2
默认值:0
索引创建内存 (KB)(A,SC) 最小值:704
最大值:2147483647
默认值:0
轻型池(A,RR) 最小值:0
最大值:1
默认值:0
锁定(A,RR,SC) 最小值:5000
最大值:2147483647
默认值:0
最大并行度 (A) 最小值:0
最大值:32767
默认值:0
最大全文爬网范围 (A) 最小值:0
最大值:256
默认值:4
最大 RPC 请求参数 (KB) (A) 最小值:0
最大值:2147483647
默认值:0
SQL Server 2019 (15.x) CU 26 及更高版本,以及 SQL Server 2022 (16.x) CU 13 及更高版本
最大服务器内存 (MB)(A,SC) 最小值:16
最大值:2147483647
默认值:2147483647
最大文本 repl 大小 (B) 最小值:0
最大值:2147483647
默认值:65536
最大工作线程数 (A) 2 最小值:128
最大值:32767
默认值:0

对于 64 位 SQL Server,推荐的最大值2048(对于 32 位,则为 1024
介质保持期 (A) 最小值:0
最大值:365
默认值:0
每次查询占用的最小内存 (KB) (A) 最小值:512
最大值:2147483647
默认值:1024
最大服务器内存 (MB)(A,SC) 最小值:0
最大值:2147483647
默认值:0
嵌套触发器 最小值:0
最大值:1
默认值:1
network packet size (A) 最小值:512
最大值:32767
默认值:4096
OLE 自动化过程 (A) 最小值:0
最大值:1
默认值:0
打开的对象(A,RR)

警告:已过时。 请不要使用。
最小值:0
最大值:2147483647
默认值:0
针对即席工作负载进行优化 (A) 最小值:0
最大值:1
默认值:0
PH 超时 (A) 最小值:1
最大值:3600
默认值:60
PolyBase 已启用 最小值:0
最大值:1
默认值:0
SQL Server 2019 (15.x) 及更高版本
polybase 网络加密 最小值:0
最大值:1
默认值:1
预计算等级 (A) 最小值:0
最大值:1
默认值:0
优先级提升(A,RR) 最小值:0
最大值:1
默认值:0
查询调控器开销限制 (A) 最小值:0
最大值:2147483647
默认值:0
查询等待(秒)(A) 最小值:-1
最大值:2147483647
默认值:-1
恢复间隔(分钟)(A,SC) 最小值:0
最大值:32767
默认值:0
远程访问 (RR) 最小值:0
最大值:1
默认值:1
远程管理连接 最小值:0
最大值:1
默认值:0
远程数据存档 最小值:0
最大值:1
默认值:0
远程登录超时(秒) 最小值:0
最大值:2147483647
默认值:10
远程过程事务 最小值:0
最大值:1
默认值:0
远程查询超时(秒) 最小值:0
最大值:2147483647
默认值:600
复制 XP (A) 最小值:0
最大值:1
默认值:0
扫描启动过程(A,RR) 最小值:0
最大值:1
默认值:0
服务器触发器递归 最小值:0
最大值:1
默认值:1
设置工作集大小(A,RR)

警告:已过时。 请不要使用。
最小值:0
最大值:1
默认值:0
显示高级选项 最小值:0
最大值:1
默认值:0
SMO 和 DMO XP (A) 最小值:0
最大值:1
默认值:1
取消显示恢复模型错误 (A) 最小值:0
最大值:1
默认值:0
tempdb 元数据内存优化(A,RR) 最小值:0
最大值:1
默认值:0
SQL Server 2019 (15.x) 及更高版本
转换干扰词 (A) 最小值:0
最大值:1
默认值:0
两位数年份截止 (A) 最小值:1753
最大值:9999
默认值:2049
用户连接(A,RR,SC) 最小值:0
最大值:32767
默认值:0
用户选项 最小值:0
最大值:32767
默认值:0
SQL Server 的版本高位部分 (A) 最小值:-2147483648
最大值:2147483647
默认值:0
SQL Server 的版本低位部分 (A) 最小值:-2147483648
最大值:2147483647
默认值:0
xp_cmdshell (A) 最小值:0
最大值:1
默认值:0

1 当 SQL Server 代理启动时,更改为 1。 如果 SQL Server 代理设置为在安装期间自动启动,则默认值为 0

2 如果值为零 (0),则根据逻辑处理器的数量自动配置最大工作线程数。 有关详细信息,请参阅自动配置最大工作线程数