sp_configure (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例 不支持。 Azure Synapse Analytics 分析平台系统 (PDW)

显示或更改当前服务器的全局配置设置。

注意

有关数据库级配置选项,请参阅 ALTER DATABASE SCOPED CONFIGURATION。 若要配置 Soft-NUMA,请参阅 Soft-NUMA (SQL Server)。

Transact-SQL 语法约定

语法

SQL Server 的语法。

sp_configure
    [ [ @configname = ] 'configname' ]
    [ , [ @configvalue = ] configvalue ]
[ ; ]

适用于并行数据仓库的语法。

sp_configure
[ ; ]

参数

[ @configname = ] 'configname'

配置选项的名称。 @confignamevarchar(35),默认值为 NULL. SQL Server 数据库引擎可识别属于配置名称的任何唯一字符串。 如果未指定该参数,则返回选项的完整列表。

有关可用配置选项及其设置的信息,请参阅服务器配置选项(SQL Server)。

[ @configvalue = ] configvalue

新的配置设置。 @configvalue为 int,默认值为 NULL.

最大值取决于各个选项。 若要查看每个选项的最大值,请参阅 maximum 目录视图的 sys.configurations 列。

返回代码值

0(成功)或 1(失败)。

结果集

在没有参数的情况下执行时, sp_configure 返回包含五列的结果集,并按升序按字母顺序对选项进行排序,如下表所示。

config_valuerun_value值不自动等效。 使用 sp_configure更新配置设置后,还必须使用 RECONFIGURERECONFIGURE WITH OVERRIDE更新正在运行的配置值。 有关详细信息,请参阅备注部分。

列名称 数据类型 描述
name nvarchar(35) 配置选项的名称。
minimum int 配置选项的最小值。
maximum int 配置选项的最大值。
config_value int 使用 sp_configure 配置选项设置的值(值 in sys.configurations.value)。

有关这些选项的详细信息,请参阅 服务器配置选项(SQL Server)sys.configurations
run_value int 当前正在运行的配置选项值(值 in sys.configurations.value_in_use)。

有关详细信息,请参阅 sys.configurations

注解

用于 sp_configure 显示或更改服务器级设置。 若要更改数据库级设置,请使用 ALTER DATABASE。 若要更改仅影响当前用户会话的设置,请使用 SET 该语句。

某些服务器配置选项只能通过 ALTER SERVER CONFIGURATION 使用

SQL Server 大数据群集

某些操作(包括配置服务器(实例级别)设置或手动将数据库添加到可用性组,需要连接到 SQL Server 实例。 某些操作(例如 sp_configureRESTORE DATABASE 或属于可用性组的数据库中的任何 DDL 命令)需要连接到 SQL Server 实例。 默认情况下,大数据群集不包含用于连接到实例的终结点。 必须手动公开此终结点。

有关说明,请参阅连接到主副本上的数据库

更新正在运行的配置值

为@configname指定新的@configvalue时,结果集将在config_value列中显示此值。 此值最初与列中的值 run_value 不同,该值显示当前正在运行的配置值。 若要更新列中正在运行的配置值run_value,系统管理员必须运行或RECONFIGURERECONFIGURE WITH OVERRIDE运行。

RECONFIGURE WITH OVERRIDE同时使用RECONFIGURE每个配置选项。 但是,基本 RECONFIGURE 语句拒绝任何超出合理范围或可能导致选项冲突的选项值。 例如,RECONFIGURE如果恢复间隔值大于 60 分钟,或者相关性掩码值与关联 I/O 掩码值重叠,则生成错误。 RECONFIGURE WITH OVERRIDE相反,接受具有正确数据类型的任何选项值,并使用指定的值强制重新配置。

注意

不合适的选项值会给服务器实例的配置造成不利影响。 谨慎使用 RECONFIGURE WITH OVERRIDE

RECONFIGURE 语句动态更新某些选项;其他选项需要服务器停止并重启。 例如,最小服务器内存最大服务器内存服务器内存选项在数据库引擎中动态更新。 因此,可以在不重启服务器的情况下更改它们。 相比之下,重新配置填充因子选项的运行值需要重启数据库引擎。

在配置选项上运行 RECONFIGURE 后,可以通过执行 sp_configure '<configname>'来查看该选项是否已动态更新。 和run_valueconfig_value列中的值应与动态更新的选项匹配。 还可以通过查看 is_dynamic 目录视图的列来检查哪些选项是动态的 sys.configurations

更改也会写入 SQL Server 错误日志。

如果指定的@configvalue太高run_value,则列反映数据库引擎默认为动态内存的事实,而不是使用无效的设置。

有关详细信息,请参阅 RECONFIGURE

高级选项

某些配置选项(例如 关联掩码恢复间隔)被指定为高级选项。 默认情况下,这些选项不可用于查看和更改。 若要使其可用,请将 显示高级选项 配置选项设置为 1

注意

当选项 显示高级选项 设置为 1时,此设置将应用于所有用户。 建议仅暂时使用此状态,并在完成需要查看高级选项的任务时切换回 0 去。

有关配置选项及其设置的详细信息,请参阅服务器配置选项(SQL Server)。

权限

默认情况下,所有用户都具备不带参数或仅带第一个参数的 sp_configure 的执行权限。 若要使用这两个参数执行 sp_configure 以更改配置选项或运行 RECONFIGURE 语句,必须授予 ALTER SETTINGS 服务器级权限。 ALTER SETTINGS 权限由 sysadmin 和 serveradmin 固定服务器角色隐式拥有。

示例

A. 列出高级配置选项

以下示例显示如何设置并列出所有的配置选项。 可以通过第一个设置为 show advanced options 1.. 来显示高级配置选项。 此选项更改后,可以通过不带参数执行 sp_configure 来显示所有配置选项。

USE master;
GO
EXEC sp_configure 'show advanced options', '1';

下面是结果集:

Configuration option 'show advanced options' changed from 0 to 1. Run the `RECONFIGURE` statement to install.

运行 RECONFIGURE 并显示全部配置选项:

RECONFIGURE;
EXEC sp_configure;

B. 更改配置选项

以下示例将系统 recovery interval 配置选项设置为 3 分钟。

USE master;
GO
EXEC sp_configure 'recovery interval', '3';
RECONFIGURE WITH OVERRIDE;

示例:Analytics Platform System (PDW)

°C 列出所有可用的配置设置

以下示例显示如何列出所有的配置选项。

EXEC sp_configure;

结果返回选项名称,后跟该选项的最小值和最大值。 Azure config_value Synapse Analytics 在重新配置完成后使用的值。 当前 run_value 正在使用的值。 run_value通常config_value相同,除非值正在更改。

D. 列出一个配置名称的配置设置

EXEC sp_configure @configname = 'hadoop connectivity';

E. 设置 hadoop 连接

除了运行 sp_configure之外,设置 Hadoop 连接还需要执行几个步骤。 有关完整过程,请参阅 CREATE EXTERNAL DATA SOURCE

sp_configure [ @configname = ] 'hadoop connectivity',
             [ @configvalue = ] { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 }
[ ; ]
RECONFIGURE;
[ ; ]