サーバー構成: ロック

適用対象: SQL Server

この記事では、SQL Server Management Studio または Transact-SQL を locks 使用して SQL Server のサーバー構成オプションを構成する方法について説明します。 このオプションはlocks、使用可能なロックの最大数を設定します。これによって、SQL Server データベース エンジンが使用するメモリの量が制限されます。 既定値は 0 です。0 の場合、 データベース エンジン はシステム要件の変更に基づいてロック構造を動的に割り当てたり、割り当てを解除したりできます。

重要

この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。

推奨事項

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

サーバーが開始0されlocks、2,500 個のロック構造の初期プールに対して、ロック マネージャーはデータベース エンジンから十分なメモリを取得します。 ロック プールが使い果たされると、プールのメモリが増えます。

一般に、ロック プールに必要なメモリが、データベース エンジン メモリ プールで使用可能なメモリよりも多く、使用可能なコンピューター メモリが多い (max server memoryしきい値に達していない) 場合、データベース エンジンはロックの要求を満たすためにメモリを動的に割り当てます。 ただし、そのメモリを割り当てると、オペレーティング システム レベルでページングが発生する場合 (たとえば、別のアプリケーションが SQL Server のインスタンスと同じコンピューター上で実行されていて、そのメモリを使用している場合)、ロック領域が増えることはありません。 動的ロック プールは、データベース エンジンに割り当てられたメモリの 60% を超えるメモリを取得しません。 ロック プールが、データベース エンジンのインスタンスによって取得されたメモリの 60% に達した後、またはコンピューターでこれ以上メモリを使用できない場合は、ロックに対するその他の要求でエラーが発生します。

SQL Server が動的にロックを割り当てるように構成することをお勧めします。 ただし、SQL Server でロック リソースを動的に割り当てる機能を設定 locks およびオーバーライドできます。 以外0の値に設定するとlocks、データベース エンジンで指定されたlocks値よりも多くのロックを割り当てることはできません。 使用可能なロックの数を超えたというメッセージが SQL Server に表示される場合は、この値を大きくします。 各ロックはそれぞれ 96 バイトのメモリを消費するため、この値を大きくした場合、状況によってはサーバー専用のメモリも増やす必要があります。

このオプションは locks 、ロックのエスカレーションが発生した場合にも影響します。 に0設定するとlocks、現在のロック構造で使用されているメモリがデータベース エンジン メモリ プールの 40% に達すると、ロック エスカレーションが発生します。 に0設定されていない場合locks、ロックの数が指定された値の 40% に達すると、ロックのエスカレーションが発生しますlocks

アクセス許可

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

SQL Server Management Studio の使用 [SQL Server]

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

  2. [詳細設定] ノードを選びます。

  3. [並列処理] で、オプションの目的の値をlocks入力します。

    このオプションを locks 使用して、使用可能なロックの最大数を設定します。これによって、SQL Server で使用されるメモリの量が制限されます。

Transact-SQL の使用

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

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

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、 sp_configure を使用して locks オプションの値を設定する方法を示します。使用できるロックの数をユーザー全体で 20000に設定します。

    USE master;
    GO
    
    EXECUTE sp_configure 'show advanced options', 1;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'locks', 20000;
    GO
    
    RECONFIGURE;
    GO
    
    EXECUTE sp_configure 'show advanced options', 0;
    GO
    
    RECONFIGURE;
    GO
    

詳しくは、「サーバー構成オプション」をご覧ください。

補足情報: ロック オプションを構成した後

設定を有効にするには、サーバーを再起動する必要があります。