メモリ使用率の監視

SQL Server のインスタンスを定期的に監視し、メモリ使用率が通常の範囲内であることを確認します。

メモリの少ない状況を監視するには、次のオブジェクト カウンタを使用します。

  • Memory: Available Bytes

  • Memory: Pages/sec

Available Bytes カウンタは、プロセスで現在使用できるメモリのバイト数を示します。Pages/sec カウンタは、重大なページ障害のためにディスクから取り出されたページ数や、ページ障害によって作業セット内の領域を解放するためにディスクに書き込まれたページ数を示します。

Available Bytes カウンタの値が低い場合、コンピュータのメモリが全体的に不足しているか、アプリケーションがメモリを解放していないことが考えられます。Pages/sec カウンタの値が高い場合、ページングが過剰であることが考えられます。ディスク利用状況がページングによるものかどうかを確認するには、Memory: Page Faults/sec カウンタを監視します。

コンピュータに十分なメモリがある場合でも、ページングとページ障害が低い率で発生することは問題ではありません。Microsoft Windows Virtual Memory Manager (VMM) では、プロセスの作業セットのサイズを小さくするときに、SQL Server と他のプロセスからページを取得します。この VMM の動作が、ページ障害の原因になる場合があります。SQL Server または他のプロセスが過剰なページングの原因であるかどうかを判断するには、SQL Server プロセス インスタンスの Process: Page Faults/sec カウンタを監視します。

過剰なページングの解決方法の詳細については、Windows オペレーティング システムのマニュアルを参照してください。

SQL Server が使用するメモリの分離

既定では、SQL Server は使用可能なシステム リソースに基づいて、必要なメモリを動的に変更します。SQL Server により多くのメモリが必要な場合は、空き物理メモリが使用可能かどうかを調べるためにオペレーティング システムに問い合わせ、使用可能なメモリを使用します。SQL Server で、現在割り当てられているメモリが必要ない場合は、そのメモリをオペレーティング システムに対して解放します。ただし、min server memory および max server memory サーバー構成オプションを使用して、オプションを上書きしてメモリを動的に使用できます。詳細については、「サーバー メモリ オプション」を参照してください。

SQL Server で使用されるメモリの量を監視するには、次のパフォーマンス カウンタを調べます。

  • Process: Working Set

  • SQL Server: Buffer Manager: Buffer Cache Hit Ratio

  • SQL Server: Buffer Manager: Total Pages

  • SQL Server: Memory Manager: Total Server Memory (KB)

WorkingSet カウンタは、プロセスが使用しているメモリの量を示します。この数値が min server memory および max server memory サーバー オプションで設定したメモリの量を常に下回っている場合、SQL Server は過剰なメモリを使用するように構成されています。

Buffer Cache Hit Ratio カウンタは、アプリケーション固有のカウンタです。適切な値は 90% 以上です。値が常に 90% より大きくなるまで、メモリを追加してください。90% より大きい値は、90% を超えるデータ要求がデータ キャッシュで処理できたことを示しています。

TotalServerMemory (KB) カウンタがコンピュータの物理メモリ容量に比べて常に高い場合、より多くのメモリが必要であることを示しています。