服务器配置选项

适用于: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
SQL Server 2025 (17.x) 预览版和更高版本
允许更新

警告:已过时。 请不要使用。 重新配置期间会导致错误。
最小值0
最大值1
默认0
自动软件 NUMA 已禁用(A,RR) 最小值0
最大值1
默认0
可用性组提交时间 (ms) 最小值0
最大值10
默认0
SQL Server 2025 (17.x) 预览版和更高版本
备份校验和默认值 最小值0
最大值1
默认0
备份压缩默认值 最小值0
最大值1
默认0
备份压缩算法 最小值0
最大值
- 2 (SQL Server 2022 (16.x))
- 3 (SQL Server 2025 (17.x) 预览版)
默认0
SQL Server 2022 (16.x) 及更高版本
阻塞进程阈值(秒) (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
SQL Server 2025 (17.x) 预览版
外部脚本已启用 (SC) 最小值0
最大值1
默认0
SQL Server 2016 (13.x) 及更高版本
外部 xtp dll gen util 已启用 最小值0
最大值1
默认0
SQL Server 2022 (16.x) CU 17 及更高版本
filestream 访问级别 最小值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
最大文本复制大小 (B) 最小值0
最大值2147483647
默认65536
最大工作线程数 (A) 2 最小值128
最大值32767
默认0

对于 64 位 SQL Server,推荐的最大值2048(对于 32 位,则为 1024
最大 ucs 发送数据包 最小值0
最大值2048
默认256
SQL Server 2025 (17.x) 预览版和更高版本
介质保持期 (A) 最小值0
最大值365
默认0
每次查询占用的最小内存 (KB) (A) 最小值512
最大值2147483647
默认1024
最大服务器内存 (MB)(A,SC) 最小值0
最大值2147483647
默认0
嵌套触发器 最小值0
最大值1
默认1
网络数据包大小 (B) (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
复制 XPS (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),则根据逻辑处理器的数量自动配置最大工作线程数。 有关详细信息,请参阅自动配置最大工作线程数