適用対象:SQL Server
この記事では、SQL Server Management Studio または Transact-SQL を使用して、SQL Server で index create memory サーバー構成オプションを構成する方法について説明します。
index create memory オプションは、インデックス作成時の並べ替え操作用として最初に割り当てられる最大メモリ容量を制御します。 このオプションの既定値は 0 (自己構成) です。 その後、インデックスを作成するためにより多くのメモリが必要になった場合、メモリ容量を確保できるのであれば、サーバーはそのメモリを使用します。 そうすると、このオプションの設定値を超えることになります。 追加メモリを確保できない場合は、既に割り当てられているメモリを使用してインデックス作成が続行されます。
制限事項
min memory per query オプションの設定は、index create memory オプションよりも優先順位が高くなります。 両方のオプションを変更し、index create memory の設定値を min memory per query より小さくした場合は、警告メッセージが表示されます。ただし、値はそのまま設定されます。 クエリ実行中にも同様の警告が表示されます。
パーティション テーブルとパーティション インデックスを使用する場合、パーティション インデックスが未整理であったり、並列処理の頻度が高かったりすると、インデックスの作成に必要な最小メモリ容量が大幅に増加します。 このオプションを使用して、1 回のインデックス作成操作ですべてのインデックス パーティションに最初に割り当てられる合計メモリ容量を指定できるようになっています。 このオプションで指定したメモリ容量が、クエリの実行に必要となる最小メモリ容量より小さい場合は、クエリの実行が中止され、エラー メッセージが表示されます。
このオプションの実行値は、SQL Server を実行しているオペレーティング システムおよびハードウェア プラットフォームで実際に確保できるメモリ容量を超えることはありません。
推奨事項
このオプションは高度なオプションであり、経験豊富なデータベースプロフェッショナルのみが変更する必要があります。
index create memory オプションは自動的に設定されるので、通常は調整する必要がありません。 ただし、インデックスを正常に作成できない場合は、必要に応じて、このオプションの値を実行値より大きくしてください。
通常、稼働中のシステムではインデックス作成は頻度の少ない作業であり、多くの場合、閑散時に実行が予定されるジョブです。 したがって、インデックスの作成が頻繁でなく、閑散時に行われる場合、index create memory を増やすとインデックス作成のパフォーマンスが向上します。 ただし、min memory per query 構成オプションの値は小さい数にします。そうすれば、要求したすべてのメモリが利用できない場合でも、インデックス作成ジョブは起動します。
アクセス許可
パラメーターなしで、または最初のパラメーターだけを指定して sp_configure を実行する権限は、既定ですべてのユーザーに付与されます。 両方のパラメーターを指定して sp_configure を実行し構成オプションを変更したり RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限がユーザーに付与されている必要があります。
ALTER SETTINGS 権限は、sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。
SQL Server Management Studio の使用 [SQL Server]
オブジェクト エクスプローラーで、サーバーを右クリックし、[プロパティ] を選択します。
[メモリ] ノードを選択します。
[インデックス作成メモリ] で、index create memory オプションの目的の値を入力または選択します。
index create memoryオプションは、インデックス作成時の並べ替えに使用するメモリの量を制御する場合に使用します。index create memoryオプションは自動構成型で、ほとんどの場合、調整を行わなくても機能します。 ただし、インデックスを正常に作成できない場合は、必要に応じて、このオプションの値を実行値より大きくしてください。 クエリの並べ替えは、min memory per queryオプションを使用して制御します。
Transact-SQL の使用
データベース エンジンに接続します。
標準バーから、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、 sp_configure を使用して、
index create memoryオプションの値を4096に設定する方法を示します。USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'index create memory', 4096; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
詳しくは、「サーバー構成オプション」をご覧ください。
補足情報: index create memory オプションを構成した後
新しい設定は、サーバーを再起動しなくてもすぐに有効になります。