次の方法で共有


サーバー構成: 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 クエリ プロセッサは、クエリに割り当てる最適なメモリの量を決定しようとします。 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」を参照してください。

アクセス許可

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

SQL Server Management Studio の使用 [SQL Server]

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

  2. [メモリ] ノードを選択します。

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

Transact-SQL の使用

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

  2. 標準バーから、 [新しいクエリ] を選択します。

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

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'min memory per query', 3500;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

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

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