共用方式為


sp_configure (Transact-SQL)

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

主題連結圖示Transact-SQL 語法慣例

語法

sp_configure [ [ @configname = ] 'option_name' 
    [ , [ @configvalue = ] 'value' ] ] 

引數

  • [ @configname= ] 'option_name'
    這是組態選項的名稱。option_name 是 varchar(35),預設值是 NULL。SQL Server Database Engine 會識別任何屬於組態名稱一部分的唯一字串。若未指定,就會傳回完整的選項清單。

    如需有關可用組態選項及其設定的資訊,請參閱<設定伺服器組態選項>。

  • [ @configvalue= ] 'value'
    這是新的組態設定。value 是 int,預設值是 NULL。最大值會隨著個別選項而不同。

    若要查看每個選項的最大值,請參閱 sys.configurations 目錄檢視的 maximum 資料行。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

如果執行時並未設定參數,sp_configure 會傳回含有五個資料行的結果集,且會如下表所示,依照字母的遞增順序來排列選項。

config_valuerun_value 值不會自動相等。在利用 sp_configure 來更新組態設定之後,系統管理員必須利用 RECONFIGURE 或 RECONFIGURE WITH OVERRIDE 來更新執行中的組態值。如需詳細資訊,請參閱<備註>一節。

資料行名稱

資料類型

描述

name

nvarchar(35)

組態選項的名稱。

minimum

int

組態選項的最小值。

maximum

int

組態選項的最大值。

config_value

int

利用 sp_configure 來設定的組態選項值 (sys.configurations.value 中的值)。如需有關這些選項的詳細資訊,請參閱<設定伺服器組態選項>和<sys.configurations (Transact-SQL)>。

run_value

int

組態選項目前在執行中的值 (sys.configurations.value_in_use 中的值)。

如需詳細資訊,請參閱<sys.configurations (Transact-SQL)>。

備註

請利用 sp_configure 來顯示或變更伺服器層級的設定。若要變更資料庫層級的設定,請使用 ALTER DATABASE。若要變更只影響目前使用者工作階段的設定,請使用 SET 陳述式。

更新執行中的組態值

當您指定新的 value 給某個 option 時,結果集會在 config_value 資料行中顯示這個值。開始時,這個值會有別於 run_value 資料行中的值,會顯示目前在執行中的組態值。若要更新 run_value 資料行的執行組態值,系統管理員必須執行 RECONFIGURE 或 RECONFIGURE WITH OVERRIDE。

RECONFIGURE 和 RECONFIGURE WITH OVERRIDE 都會使用每個組態選項。不過,基本 RECONFIGURE 陳述式會拒絕在合理範圍之外或可能造成選項衝突的任何選項值。例如,如果 recovery interval 值超出 60 分鐘,或 affinity mask 值與 affinity I/O mask 值重疊,RECONFIGURE 就會產生錯誤。相對地,RECONFIGURE WITH OVERRIDE 會接受任何資料類型正確的選項值,且會強迫利用指定的值來重設組態。

警告注意事項警告

不恰當的選項值可能會對伺服器執行個體的組態產生負面的影響。當使用 RECONFIGURE WITH OVERRIDE 時,請特別小心。

RECONFIGURE 陳述式會動態更新某些選項;其他選項則需要伺服器停止再重新啟動。例如,Database Engine 會動態更新 min server memorymax server memory 這兩個伺服器記憶體選項;因此,您不需要重新啟動伺服器,就可以改變它們。相對地,重設 fill factor 選項執行中的值,則需要重新啟動 Database Engine。

在執行組態選項的 RECONFIGURE 之後,您可以執行 sp_configure'option_name' 來了解這個選項是否已動態更新。動態更新的選項,其 run_valueconfig_value 資料行的值應該會相符。您也可以查看 sys.configurations 目錄檢視的 is_dynamic 資料行來了解哪些選項是動態選項。

[!附註]

如果指定的 value 對選項而言太高,run_value 資料行會反映出 Database Engine 已預設為動態記憶體並放棄使用無效設定的事實。

如需詳細資訊,請參閱<RECONFIGURE (Transact-SQL)>。

進階選項

部分組態選項 (如 affinity maskrecovery interval) 指定為進階選項。依預設,這些選項無法檢視和變更。若要能夠檢視和變更它們,請將 ShowAdvancedOptions 組態選項設為 1。

如需有關組態選項及其設定的詳細資訊,請參閱<設定伺服器組態選項>。

權限

依預設,所有使用者都會取得不含參數或只含第一個參數之 sp_configure 的執行權限。若要執行同時設定了兩個參數的 sp_configure 來變更組態選項或執行 RECONFIGURE 陳述式,您必須取得 ALTER SETTINGS 伺服器層級權限。系統管理員 (sysadmin)伺服器管理員 (serveradmin) 固定伺服器角色會隱含地擁有 ALTER SETTINGS 權限。

範例

A. 列出進階組態選項

下列範例會顯示如何設定和列出所有組態選項。首先將 show advanced option 設為 1 來顯示進階組態選項。變更好這個選項之後,執行不含任何參數的 sp_configure 會顯示所有組態選項。

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

訊息如下:「組態選項 'show advanced options' 從 0 變更為 1。請執行 RECONFIGURE 陳述式來安裝。」

執行 RECONFIGURE 和顯示所有組態選項:

RECONFIGURE;
EXEC sp_configure;

B. 變更組態選項

下列範例將系統 recovery interval 設為 3 分鐘。

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