分类: 数据库开发技术
2009-09-16 23:31:54
您可以通过使用 SQL Server Management Studio 或 sp_configure 系统存储过程配置选项来管理和优化 SQL Server 资源。其中一些配置选项可以使用 SQL Server 外围应用配置器工具进行配置。大多数常用的服务器配置选项可以通过 SQL Server Management Studio 管理;而所有配置选项都可通过 sp_configure 访问。在设置这些选项之前应该认真考虑这些选项对系统的影响。
重要提示: |
---|
高级选项是只能由有经验的数据库管理员或认证的 SQL Server 技术人员来更改的选项。 |
使用 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
配置选项在下面两种情况下生效:
若要使用 sp_configure 配置高级选项,必须首先在 'show advanced options'
选项设置为 1
的情况下运行 sp_configure
,然后运行 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) |
0 |
1 |
0 |
(A,RR) |
-2147483648 |
2147483647 |
0 |
(A,仅适用于 64 位版本的 SQL Server) |
-2147483648 |
2147483647 |
0 |
(A) |
-2147483648 |
2147483647 |
0 |
(A,仅适用于 64 位版本的 SQL Server) |
-2147483648 |
2147483647 |
0 |
(A) |
0 |
1 |
0 (当 SQL Server 代理启动时,改为 1。如果 SQL Server 代理设置为在安装过程中自动启动,则为 1。) |
(已过时。请勿使用。将在重新配置期间导致错误。) |
0 |
1 |
0 |
(A,RR) |
0 |
1 |
0 |
(A) |
0 |
86400 |
0 |
(A,RR) |
0 |
1 |
0 |
|
0 |
1 |
0 |
(A,RR) |
0 |
1 |
0 |
(A) |
0 |
32767 |
5 |
|
0 |
1 |
0 |
cursor threshold (A) |
-1 |
2147483647 |
-1 |
(A) |
0 |
1 |
0 |
(A) |
0 |
2147483647 |
1033 |
|
0 |
9999 |
0 |
(A) |
0 |
1 |
1 |
(A) |
0 |
1 |
0 |
(A,RR) |
0 |
100 |
0 |
ft crawl bandwidth (max),请参阅 (A) |
0 |
32767 |
100 |
ft crawl bandwidth (min),请参阅 (A) |
0 |
32767 |
0 |
ft notify bandwidth (max),请参阅 (A) |
0 |
32767 |
100 |
ft notify bandwidth (min),请参阅 (A) |
0 |
32767 |
0 |
(A,SC) |
704 |
2147483647 |
0 |
(A) |
0 |
2 |
0 |
(A,RR) |
0 |
1 |
0 |
(A,RR,SC) |
5000 |
2147483647 |
0 |
(A) |
0 |
64 |
0 |
(A) |
0 |
256 |
4 |
(A,SC) |
16 |
2147483647 |
2147483647 |
|
0 |
2147483647 |
65536 |
(A,RR) |
128 |
32767 (对于 32 位 SQL Server,建议最大为 1024;对于 64 位 SQL Server,建议最大为 2048。) |
0 归零操作将根据处理器的数量自动配置最大工作线程数,可以使用公式 (256+(<处理器数> -4)* 8) 来计算 32 位 SQL Server 的线程数,64 位 SQL Server 的线程数为 32 位的 2 倍。 |
(A,RR) |
0 |
365 |
0 |
(A) |
512 |
2147483647 |
1024 |
(A,SC) |
0 |
2147483647 |
8 |
|
0 |
1 |
1 |
(A) |
512 |
32767 |
4096 |
(A) |
0 |
1 |
0 |
(A,RR,已过时) |
0 |
2147483647 |
0 |
(A) |
1 |
3600 |
60 |
(A) |
0 |
1 |
0 |
(A,RR) |
0 |
1 |
0 |
(A) |
0 |
2147483647 |
0 |
(A) |
-1 |
2147483647 |
-1 |
(A,SC) |
0 |
32767 |
0 |
(RR) |
0 |
1 |
1 |
|
0 |
1 |
0 |
|
0 |
2147483647 |
20 |
|
0 |
1 |
0 |
|
0 |
2147483647 |
600 |
(A) |
0 |
1 |
0 |
(A,RR) |
0 |
1 |
0 |
0 |
1 |
1 | |
(A,RR,已过时) |
0 |
1 |
0 |
|
0 |
1 |
0 |
(A) |
0 |
1 |
1 |
(A) |
0 |
1 |
0 |
(A) |
0 |
1 |
0 |
1753 |
9999 |
2049 | |
(A,RR,SC) |
0 |
32767 |
0 |
(A,仅出现在 SQL Server 2005 Express Edition 中) |
5 |
65535 |
60 |
(A,仅 SQL Server 2005 Express Edition 中提供) |
0 |
1 |
0 |
|
0 |
32767 |
0 |
(A) |
0 |
1 |
0 |
(A) |
0 |
1 |
0 |