min memory per query (サーバー構成オプション) の構成

適用対象:SQL Server

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、 SQL Server の min memory per query サーバー構成オプションを構成する方法について説明します。 min memory per query オプションは、クエリの実行用に割り当てる最小メモリ容量 (KB 単位) を指定します。 これは、最小メモリ許可とも呼ばれます。 たとえば、 min memory per query を 2,048 KB に設定すると、クエリには少なくともその値分のメモリが必ず割り当てられます。 既定値は 1,024 KB です。 最小値は 512 KB、最大値は 2,147,483,647 KB (2 GB) です。

このトピックの内容

はじめに

制限事項と制約事項

  • min memory per query オプションの値は、index create memory オプションよりも優先順位が高くなります。 両方のオプションを変更し、index create memory の設定値を min memory per query より小さくした場合は、警告メッセージが表示されます。ただし、値はそのまま設定されます。 クエリ実行中にも同様の警告が表示されます。

推奨事項

  • このオプションは詳細設定オプションであるため、熟練したデータベース管理者または認定された SQL Server プロフェッショナルだけが変更するようにしてください。

  • SQL Server クエリ プロセッサは、クエリに割り当てる最適なメモリの量を決定しようとします。 min memory per query オプションを使用すると、管理者は、どの単一のクエリにも割り当てられるメモリ量の最小値を指定できます。 通常、クエリが大量のデータに対してハッシュおよび並べ替え操作を行う場合は、min memory per query オプションの設定よりも多くメモリがクエリに割り当てられます。 min memory per query の値を増やすと、小規模から中規模のクエリではパフォーマンスが向上する可能性があります。ただし、この値の増加によって、メモリ リソースでの競合も増加する可能性があります。 min memory per query オプションには、並べ替え操作用に割り当てられるメモリが含まれます。

  • min memory per query サーバー構成オプションは、特に稼働率が高いシステムではあまり大きい値を設定しないでください。これは、要求されたメモリ最小量を確保するか、query wait サーバー構成オプションに指定された値を超えるまで、クエリは待機する必要があるためです1。 クエリの実行に最小限必要として指定されている量よりも多くのメモリが実際に使用できる場合、そのクエリがメモリを有効に利用できるという条件の基に、クエリで追加のメモリが利用可能になります。

1 このシナリオの場合、待機の種類は一般的に RESOURCE_SEMAPHORE になります。 詳しくは「sys.dm_os_wait_stats (Transact-SQL)」をご覧ください。

セキュリティ

アクセス許可

パラメーターなしで、または最初のパラメーターだけを指定して sp_configure を実行する権限は、既定ですべてのユーザーに付与されます。 両方のパラメーターを指定して sp_configure を実行し構成オプションを変更したり RECONFIGURE ステートメントを実行したりするには、ALTER SETTINGS サーバーレベル権限がユーザーに付与されている必要があります。 ALTER SETTINGS 権限は、 sysadmin 固定サーバー ロールと serveradmin 固定サーバー ロールでは暗黙のうちに付与されています。

SQL Server Management Studio を使用する

min memory per query オプションを構成するには

  1. オブジェクト エクスプローラーで、サーバーを右クリックし、 [プロパティ] をクリックします。

  2. [メモリ] ノードをクリックします。

  3. [クエリごとに使用する最小メモリ (KB 単位)] ボックスで、クエリの実行用に割り当てる最小メモリ容量 (KB 単位) を指定します。

Transact-SQL の使用

min memory per query オプションを構成するには

  1. データベース エンジンに接続します。

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、 sp_configure を使用して、 min memory per query オプションの値を 3500 KB に設定する方法を示します。

USE AdventureWorks2022;  
GO  
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE ;  
GO  
EXEC sp_configure 'min memory per query', 3500 ;  
GO  
RECONFIGURE;  
GO    

補足情報: min memory per query オプションを構成した後

新しい設定は、サーバーを再起動しなくてもすぐに有効になります。

参照

RECONFIGURE (Transact-SQL)
サーバー構成オプション (SQL Server)
sp_configure (Transact-SQL)
index create memory サーバー構成オプションの構成
sys.dm_os_wait_stats (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)