sp_configure (Transact-SQL)
顯示或變更目前伺服器的全域組態設定。
語法
sp_configure [ [ @configname = ] 'option_name'
[ , [ @configvalue = ] 'value' ] ]
引數
[ @configname= ] 'option_name'
這是組態選項的名稱。option_name 是 varchar(35),預設值是 NULL。SQL Server 2005 Database Engine 會識別任何屬於組態名稱一部分的唯一字串。若未指定,就會傳回完整的選項清單。如需有關可用組態選項及其設定的資訊,請參閱<設定伺服器組態選項>。
[ @configvalue= ] 'value'
這是新的組態設定。value 是 int,預設值是 NULL。最大值會隨著個別選項而不同。若要查看每個選項的最大值,請參閱 sys.configurations 目錄檢視的 maximum 資料行。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
如果執行時並未設定參數,sp_configure 會傳回含有五個資料行的結果集,且會如下表所示,依照字母的遞增順序來排列選項。
config_value 和 run_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 memory 和 max server memory 這兩個伺服器記憶體選項;因此,您不需要重新啟動伺服器,就可以改變它們。相對地,重設 fill factor 選項執行中的值,則需要重新啟動 Database Engine。
在執行組態選項的 RECONFIGURE 之後,您可以執行 sp_configure'option_name' 來瞭解這個選項是否已動態更新。動態更新的選項,其 run_value 和 config_value 資料行的值應該會相符。您也可以查看 sys.configurations 目錄檢視的 is_dynamic 資料行來瞭解哪些選項是動態選項。
附註: |
---|
如果指定的 value 對選項而言太高,run_value 資料行會反映出 Database Engine 已預設為動態記憶體並放棄使用無效設定的事實。 |
如需詳細資訊,請參閱<RECONFIGURE (Transact-SQL)>。
進階選項
部分組態選項 (如 affinity mask 和 recovery interval) 指定為進階選項。依預設,這些選項無法檢視和變更。若要能夠檢視和變更它們,請將 ShowAdvancedOptions 組態選項設為 1。
如需有關組態選項及其設定的詳細資訊,請參閱<設定伺服器組態選項>。
權限
依預設,所有使用者都會取得不含參數或只含第一個參數之 sp_configure 的執行權限。若要執行同時設定了兩個參數的 sp_configure 來變更組態選項,您必須取得 ALTER SETTINGS 伺服器層級權限。系統管理員 (sysadmin) 和伺服器管理員 (serveradmin) 固定伺服器角色會隱含地擁有 ALTER SETTINGS 權限。若要執行 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;
請參閱
參考
RECONFIGURE (Transact-SQL)
SET (Transact-SQL)
ALTER DATABASE (Transact-SQL)
系統預存程序 (Transact-SQL)
sys.configurations (Transact-SQL)