分享方式:


sp_configure (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體 不支援。 Azure Synapse Analytics Analytics Platform System (PDW)

顯示或變更目前伺服器的全域組態設定。

注意

如需資料庫層級組態選項,請參閱 ALTER DATABASE SCOPED CONFIGURATION。 若要設定軟體 NUMA,請參閱 軟體 NUMA (SQL Server)

Transact-SQL 語法慣例

Syntax

SQL Server 的語法。

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

平行處理資料倉儲的語法。

sp_configure
[ ; ]

引數

[ @configname = ] 'configname'

組態選項的名稱。 @configname為 varchar(35),預設值為 NULL。 SQL Server 資料庫引擎 可辨識任何屬於組態名稱一部分的唯一字串。 若未指定,就會傳回完整的選項清單。

如您可用群組態選項及其設定的相關資訊,請參閱 伺服器組態選項 (SQL Server)

[ @configvalue = ] configvalue

新的組態設定。 @configvalue為 int,預設值為 NULL

最大值會隨著個別選項而不同。 若要查看每個選項的最大值,請參閱 maximum 目錄檢視的數據 sys.configurations 行。

傳回碼值

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

結果集

以無參數執行時,傳回具有五個數據行的結果集, sp_configure 並以遞增順序依字母順序排序選項,如下表所示。

run_value 的值config_value不會自動相等。 使用 sp_configure更新組態設定之後,您也必須使用 RECONFIGURERECONFIGURE WITH OVERRIDE更新執行中的組態值。 如需詳細資訊,請參閱備註一節。

資料行名稱 資料類型 描述
name nvarchar(35) 組態選項的名稱。
minimum int 組態選項的最小值。
maximum int 組態選項的最大值。
config_value int 組態選項使用 sp_configure 設定的值(在 中 sys.configurations.value為 值)。

如需這些選項的詳細資訊,請參閱 伺服器組態選項 (SQL Server)sys.configurations
run_value int 組態選項目前執行中的值(在 中 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 OVERRIDERECONFIGURE使用每個組態選項。 不過,基本 RECONFIGURE 語句會拒絕任何超出合理範圍或可能導致選項之間衝突的選項值。 例如,RECONFIGURE如果復原間隔值大於 60 分鐘,或 affinity mask 值與 affinity I/O mask 值重疊,則會產生錯誤。 RECONFIGURE WITH OVERRIDE相反地,接受任何具有正確數據類型的選項值,並使用指定的值強制重新設定。

警告

不適當的選項值可能會對伺服器實例的組態產生負面影響。 謹慎使用 RECONFIGURE WITH OVERRIDE

語句會 RECONFIGURE 動態更新某些選項;其他選項需要伺服器停止並重新啟動。 例如,最小伺服器記憶體最大伺服器記憶體伺服器記憶體選項會在 資料庫引擎 中動態更新。 因此,您可以變更它們,而不需重新啟動伺服器。 相反地,重新設定填滿因數選項的執行值需要重新啟動 資料庫引擎。

在組態選項上執行 RECONFIGURE 之後,您可以執行 sp_configure '<configname>'來查看選項是否以動態方式更新。 和 config_value 數據行中的run_value值應該符合動態更新的選項。 您也可以查看目錄檢視的數據行,查看 is_dynamic 哪些選項是動態的 sys.configurations

變更也會寫入 SQL Server 錯誤記錄檔。

如果指定的@configvalue對選項而言太高,則run_value數據行會反映 資料庫引擎 預設為動態記憶體的事實,而不是使用無效的設定。

如需詳細資訊,請參閱 RECONFIGURE

進階選項

某些組態選項,例如 親和性遮罩復原間隔,會指定為進階選項。 根據預設,這些選項不適用於檢視和變更。 若要讓它們可供使用,請將 [顯示進階選項組態] 選項設定為 1

警告

當選項 顯示進階選項 設定為 1時,此設定會套用至所有使用者。 建議只暫時使用此狀態,並在完成需要檢視進階選項的工作時切換回 。0

如需組態選項及其設定的詳細資訊,請參閱 伺服器組態選項 (SQL Server)

權限

不含參數或只含第一個參數之 sp_configure 上的執行權限預設會授與所有使用者。 若要使用這兩個參數執行 sp_configure ,以變更組態選項或執行 RECONFIGURE 語句,您必須獲得 ALTER SETTINGS 伺服器層級許可權。 sysadminserveradmin 固定伺服器角色隱含地持有 ALTER SETTINGS 權限。

範例

A. 列出進階組態選項

下列範例示範如何設定及列出所有組態選項。 您可以先將 設定 show advanced options1來顯示進階組態選項。 在此選項變更之後,您可以藉由不使用參數執行 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;

結果會傳回選項名稱,後面接著選項的最小值和最大值。 config_value是 Azure Synapse Analytics 在重新設定完成時所使用的值。 run_value是目前正在使用的值。 和 config_value run_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;
[ ; ]