sp_configure (Transact-SQL)
現在のサーバーのグローバル構成設定を表示または変更します。
構文
sp_configure [ [ @configname = ] 'option_name'
[ , [ @configvalue = ] 'value' ] ]
引数
[ @configname= ] 'option_name'
構成オプションの名前を指定します。option_name のデータ型は varchar(35) で、既定値は NULL です。SQL Server データベース エンジンでは、構成の名前に含まれる一意の文字列はすべて認識されます。この名前を指定しないと、すべてのオプションの一覧が返されます。利用可能な構成オプションとその設定の詳細については、「サーバー構成オプションの設定」を参照してください。
[ @configvalue= ] 'value'
新しい構成設定を指定します。value のデータ型は int で、既定値は NULL です。最大値は、個々のオプションにより異なります。個々のオプションの最大値を確認するには、sys.configurations カタログ ビューの maximum 列を参照してください。
リターン コード値
0 (成功) または 1 (失敗)
結果セット
パラメータを指定せずに実行すると、sp_configure では、次の表に示すような結果セットが返されます。この結果セットは 5 列で構成され、オプション名の昇順 (アルファベット順) に表示されます。
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 ステートメントを使用します。
実行中の構成値を更新する
option に新しい value を指定すると、結果セットでは config_value 列にこの値が表示されます。この値は、最初は run_value 列の値とは異なります。この列の値は現在実行中の構成値を示しています。run_value 列に示される実行中の構成値を更新するには、システム管理者は、RECONFIGURE または RECONFIGURE WITH OVERRIDE を実行する必要があります。
RECONFIGURE と RECONFIGURE WITH OVERRIDE は両方とも、すべての構成オプションに対して機能します。ただし、基本的な RECONFIGURE ステートメントでは、通常の範囲の外にあるオプション値、またはオプション間で競合する可能性のあるオプション値はすべて拒否されます。たとえば、RECONFIGURE では、recovery interval の値が 60 分より大きい場合、または affinity mask の値が affinity I/O mask の値と重なり合う場合、エラーが生成されます。これに対し、RECONFIGURE WITH OVERRIDE では、適切なデータ型のオプション値は許可され、指定された値で強制的に再構成が行われます。
注意 |
---|
不適切なオプション値は、サーバー インスタンスの構成に悪影響を与える可能性があります。RECONFIGURE WITH OVERRIDE の使用には注意が必要です。 |
RECONFIGURE ステートメントでは、一部のオプションは動的に更新されますが、オプションによってはサーバーの停止や再起動が必要になる場合があります。たとえば、min server memory と max server memory のサーバー メモリ オプションは、データベース エンジンで動的に更新されます。したがって、オプションを変更するのにサーバーを再起動する必要はありません。これに対して、fill factor オプションの実行値を再構成するには、データベース エンジンの再起動が必要です。
構成オプションで RECONFIGURE を実行した後、sp_configure'option_name' を実行すると、そのオプションが動的に更新されたかどうか確認できます。run_value 列および config_value 列にある値は、動的に更新されたオプションの値と一致している必要があります。sys.configurations カタログ ビューの is_dynamic 列を見ることによって、動的なオプションを確認することもできます。
注 |
---|
指定した value がそのオプションには大きすぎる場合、run_value 列では、データベース エンジンで無効な設定が使用されず、既定で動的メモリが設定されていることが示されます。 |
詳細については、「RECONFIGURE (Transact-SQL)」を参照してください。
詳細設定オプション
affinity mask または recovery interval などの一部の構成オプションは、詳細オプションに指定されています。既定では、これらのオプションの表示および変更はできません。これらを使用可能するには、ShowAdvancedOptions 構成オプションを 1 に設定します。
構成オプションとその設定の詳細については、「サーバー構成オプションの設定」を参照してください。
権限
パラメータなし、あるいは最初のパラメータだけで sp_configure を実行する権限は、既定では、すべてのユーザーに与えられています。2 つのパラメータを指定し、sp_configure を実行して構成オプションを変更したり、RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限が与えられている必要があります。ALTER SETTINGS 権限は、sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは明示的に保持されています。
例
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;