您可以使用 SQL Server Management Studio 或 sp_configure 系统存储过程通过配置选项来管理和优化 SQL Server 资源。大多数常用的服务器配置选项可以通过 SQL Server Management Studio 来使用;而所有配置选项都可通过 sp_configure 来访问。在设置这些选项之前应该认真考虑这些选项对系统的影响。
使用 sp_configure 时,必须在设置配置选项之后运行 RECONFIGURE 或 RECONFIGURE WITH OVERRIDE。RECONFIGURE WITH OVERRIDE 语句通常专门用来设置那些使用起来应当十分小心的配置选项。但是,RECONFIGURE WITH OVERRIDE 可用于所有的配置选项,并且可以用它代替 RECONFIGURE。
每个选项的值都可使用以下语句确定。
SELECT * FROM sys.configurations ORDER BY name ; GO
下面的示例显示了如何使用 sp_configure 将 fill factor 选项从其默认设置更改为值 100。
sp_configure
fill factor
100
sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'fill factor', 100; GO RECONFIGURE; GO
配置选项在下面两种情况下生效:
若要配置高级选项,必须先在将 'show advanced options' 选项设置为 1 时运行 sp_configure,然后运行 RECONFIGURE,如下面的示例所示。
'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 选项。
下表列出了所有可用的配置选项、可能的设置范围及其默认值。配置选项按以下字母代码标记:
access check cache bucket count (A)
0
16384
access check cache quota (A)
2147483647
ad hoc distributed queries (A)
affinity I/O mask(A,RR)
-2147483648
affinity64 I/O mask(A,仅适用于 64 位版本的 SQL Server)
affinity mask (A)
affinity64 mask (A, RR),仅适用于 64 位版本的 SQL Server
Agent XPs (A)
(当 SQL Server 代理启动时,更改为 1。如果 SQL Server 代理设置为在安装过程中自动启动,则为 1。)
allow updates(已过时。请勿使用。将在重新配置期间导致错误。)
awe enabled(A,RR)
backup compression default
blocked process threshold (A)
86400
c2 audit mode(A,RR)
clr enabled
common criteria compliance enabled (A,RR)
cost threshold for parallelism (A)
32767
5
cross db ownership chaining
cursor threshold (A)
-1
Database Mail XPs (A)
default full-text language (A)
1033
default language
9999
default trace enabled (A)
disallow results from triggers (A)
EKM provider enabled
filestream_access_level
2
fill factor(A,RR)
ft crawl bandwidth (max),请参阅 ft crawl bandwidth (A)
ft crawl bandwidth (min),请参阅 ft crawl bandwidth (A)
ft notify bandwidth (max),请参阅 ft notify bandwidth (A)
ft notify bandwidth (min),请参阅 ft notify bandwidth (A)
index create memory(A,SC)
704
in-doubt xact resolution (A)
lightweight pooling(A,RR)
locks(A,RR,SC)
5000
max degree of parallelism (A)
64
max full-text crawl range (A)
256
4
max server memory(A,SC)
16
max text repl size
65536
max worker threads(A,RR)
128
(对于 32 位 SQL Server,建议最大为 1024;对于 64 位 SQL Server,建议最大为 2048。)
归零操作将根据处理器的数量自动配置最大工作线程数,可以使用公式 (256+(<处理器数> -4)* 8) 来计算 32 位 SQL Server 的线程数,64 位 SQL Server 的线程数为 32 位的 2 倍。
media retention(A,RR)
365
min memory per query (A)
512
1024
min server memory(A,SC)
nested triggers
network packet size (A)
4096
Ole Automation Procedures (A)
open objects(A,RR,已过时)
optimize for ad hoc workloads (A)
PH_timeout (A)
3600
60
precompute rank (A)
priority boost(A,RR)
query governor cost limit (A)
query wait (A)
recovery interval(A,SC)
remote access (RR)
remote admin connections
remote login timeout
20
remote proc trans
remote query timeout
600
Replication XPs 选项 (A)
scan for startup procs(A,RR)
server trigger recursion
set working set size(A,RR,已过时)
show advanced options
SMO and DMO XPs (A)
SQL Mail XPs (A)
transform noise words (A)
two digit year cutoff (A)
1753
2049
user connections(A,RR,SC)
User Instance Timeout(A,仅出现在 SQL Server 2008 Express 中。)
65535
user instances enabled(A,仅出现在 SQL Server 2008 Express 中。)
user options
xp_cmdshell (A)
更新了 affinity64 mask 选项以指示重新启动是必需的。