設定伺服器組態選項
更新: 2006 年 12 月 12 日
您可以使用 SQL Server Management Studio 或 sp_configure 系統預存程序,透過組態選項來管理及最佳化 SQL Server 資源。部分選項可以使用「SQL Server 介面區組態」工具來設定。最常使用的伺服器組態選項可以透過 SQL Server Management Studio 來使用,而所有組態選項都可以透過 sp_configure 來存取。在設定這些選項前,請仔細考慮這些選項對系統所造成的效果。
重要事項: |
---|
只有有經驗的資料庫管理員或通過認證的 SQL Server 技術人員,才可變更進階選項。 |
使用 sp_configure 系統預存程序
使用 sp_configure 時,您必須在設定組態選項之後,執行 RECONFIGURE 或 RECONFIGURE WITH OVERRIDE。RECONFIGURE WITH OVERRIDE 陳述式通常是保留給應該非常小心使用的組態選項。但是 RECONFIGURE WITH OVERRIDE 對所有組態選項都有效,所以它可以取代 RECONFIGURE。
附註: |
---|
RECONFIGURE 會在交易中執行。如果任何重新設定作業失敗,所有重新設定作業都不會生效。 |
可以利用下列陳述式來判斷每個選項的值。
SELECT * FROM sys.configurations
ORDER BY name ;
GO
下面是一則指令碼範例,您可以使用此指令碼搭配 sp_configure
,將 fill factor
選項從其預設值變更為值 100
:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'fill factor', 100;
GO
RECONFIGURE;
GO
設定選項的範疇
設定選項的生效方式可能是其中之一:
- 在設定選項並發出 RECONFIGURE 陳述式 (在某些情況下是 RECONFIGURE WITH OVERRIDE) 後立即生效。
- 或 - - 執行上述動作並重新啟動 SQL Server 執行個體後。
若要利用 sp_configure 來設定進階選項,您必須先執行 sp_configure
並將 'show advanced options'
選項設成 1
,然後執行 RECONFIGURE
:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'cursor threshold', 0;
GO
RECONFIGURE;
GO
在上述範例中,會立即重新設定 cursor threshold
選項。cursor threshold
的新值將出現在組態選項的 value_in_use 資料行及 value 資料行中。
需要重新啟動 SQL Server 執行個體的選項最初只會在 value 資料行中顯示變更後的值。重新啟動之後,新值將同時出現在 value 資料行及 value_in_use 資料行。
有些選項需要重新啟動伺服器,新的組態值才能生效。如果在重新啟動伺服器之前就設定新值並執行 sp_configure 的話,新值會出現在組態選項的 value 資料行,但不會出現在 value_in_use 資料行。重新啟動伺服器之後,新的值就會出現在 value_in_use 資料行。
自我設定的選項是指 SQL Server 會根據系統需要而自行調整的選項。在大多數情況下,都不需以手動方式來設定這些值。範例包括 min server memory 與 max server memory 選項,以及 user connections 選項。
組態選項表
下表列出所有可用的組態選項、可能的設定範圍以及預設值。組態選項會加上字母標示,如下所示:
A= 進階選項,只應由有經驗的資料庫系統管理員或通過認證的 SQL Server 技術人員來變更,而且必須將 show advanced options 設定為 1。
RR = 需要重新啟動 Database Engine 的選項。
SC = 自我設定的選項。
組態選項 最小值 最大值 預設值 0
1
0
affinity I/O mask (A、RR)
-2147483648
2147483647
0
affinity64 I/O mask (A,只能在 64 位元版本的 SQL Server 上使用)
-2147483648
2147483647
0
affinity mask (A)
-2147483648
2147483647
0
affinity64 mask (A,只能在 64 位元版本的 SQL Server 上使用)
-2147483648
2147483647
0
Agent XPs (A)
0
1
0
(SQL Server Agent 啟動時將變成 1。如果在安裝期間將 SQL Server Agent 設定為自動啟動,便為 1。)
allow updates (已經過時,請勿使用。否則會在重新設定期間導致錯誤)。
0
1
0
awe enabled (A、RR)
0
1
0
0
86400
0
c2 audit mode (A、RR)
0
1
0
0
1
0
0
1
0
0
32767
5
0
1
0
cursor threshold (A)
-1
2147483647
-1
0
1
0
0
2147483647
1033
0
9999
0
0
1
1
0
1
0
fill factor (A、RR)
0
100
0
ft crawl bandwidth (max),請參閱 ft crawl bandwidth(A)
0
32767
100
ft crawl bandwidth (min),請參閱 ft crawl bandwidth(A)
0
32767
0
ft notify bandwidth (max),請參閱 ft notify bandwidth(A)
0
32767
100
ft notify bandwidth (min),請參閱 ft notify bandwidth(A)
0
32767
0
index create memory (A、SC)
704
2147483647
0
0
2
0
lightweight pooling (A、RR)
0
1
0
locks (A、RR、SC)
5000
2147483647
0
0
64
0
0
256
4
max server memory (A、SC)
16
2147483647
2147483647
0
2147483647
65536
max worker threads (A、RR)
128
32767
(1024 是 32 位元 SQL Server 的最大建議值,64 位元 SQL Server 則為 2048。)
0
零表示自動設定 max worker threads 的數目,而這個數目是根據處理器數目,透過用於 32 位元 SQL Server 的公式 (256+(<processors> -4) * 8) 來決定,而 64 位元 SQL Server 則為該數目的兩倍。
media retention (A、RR)
0
365
0
512
2147483647
1024
min server memory (A、SC)
0
2147483647
8
0
1
1
512
32767
4096
0
1
0
open objects (A、RR,已經過時)
0
2147483647
0
PH_timeout (A)
1
3600
60
precompute rank (A)
0
1
0
priority boost (A、RR)
0
1
0
0
2147483647
0
query wait (A)
-1
2147483647
-1
recovery interval (A、SC)
0
32767
0
remote access (RR)
0
1
1
0
1
0
0
2147483647
20
0
1
0
0
2147483647
600
0
1
0
scan for startup procs (A、RR)
0
1
0
0
1
1
set working set size (A、RR,已經過時)
0
1
0
0
1
0
SMO and DMO XPs (A)
0
1
1
SQL Mail XPs (A)
0
1
0
0
1
0
1753
9999
2049
user connections (A、RR、SC)
0
32767
0
User Instance Timeout (A,只出現在 SQL Server 2005 Express Edition 中)
5
65535
60
user instances enabled (A,只出現在 SQL Server 2005 Express Edition)
0
1
0
0
32767
0
0
1
0
xp_cmdshell (A)
0
1
0
請參閱
概念
其他資源
sp_configure (Transact-SQL)
RECONFIGURE (Transact-SQL)
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|