SQL Server: Buffer Manager オブジェクト
Buffer Manager オブジェクトには、次に示す項目の SQL Server による使用状況を監視するためのカウンタが用意されています。
データ ページ、内部データ構造、およびプロシージャ キャッシュを格納するメモリ。
SQL Server によるデータベース ページの読み書きに伴う物理 I/O を監視するカウンタ。
SQL Server で使用されるメモリやカウンタを監視すると、次のことを確認できます。
物理メモリが適切でないことによるボトルネックが存在するかどうか。頻繁にアクセスするデータをキャッシュに格納できない場合、SQL Server はデータをディスクから取得する必要があります。
メモリを増設したり、データ キャッシュや SQL Server の内部構造により多くのメモリを使用できるように設定することで、クエリのパフォーマンスを向上できるかどうか。
SQL Server がディスクからデータをどの程度の頻度で読み取る必要があるか。メモリ アクセスなどの他の操作に比べて、物理 I/O には多くの時間がかかります。物理 I/O をできる限り少なくすれば、クエリのパフォーマンスが向上します。
SQL Server の AWE (Address Windowing Extensions) の使用状況を AWE カウンタで監視できます。たとえば、AWE が正しく動作するために十分なメモリが SQL Server によって割り当てられているかどうかを確認することができます。詳細については、「メモリ アーキテクチャ」、「AWE の使用」、または「awe enabled オプション」を参照してください。
次の表で、SQL ServerBuffer Manager パフォーマンス オブジェクトについて説明します。
SQL Server Buffer Manager カウンタ |
説明 |
---|---|
AWE lookup maps/sec |
データベース ページがサーバーにより要求、バッファ プール内で検出、およびマップされた 1 秒あたりの回数。マップしたデータベース ページは、サーバーの仮想アドレス空間の一部になります。 |
AWE stolen maps/sec |
バッファがフリー リストから取得およびマップされた 1 秒あたりの回数。 |
AWE unmap calls/sec |
バッファをマップ解除する呼び出しの 1 秒あたりの回数。マップ解除されたバッファは、仮想サーバー アドレス空間から除外されます。1 回の呼び出しにつき、1 つ以上のバッファがマップ解除されることがあります。 |
AWE unmap pages/sec |
マップ解除された SQL Server バッファの 1 秒あたりの数。 |
AWE write maps/sec |
ディスクに書き込むためにダーティ バッファでのマップが必要な 1 秒あたりの回数。 |
Buffer cache hit ratio |
バッファ キャッシュ内に存在し、ディスクから読み取る必要がないページの比率。この比率は、最近の数千のページ アクセスでのキャッシュ ヒットの総数を、キャッシュ参照の総数で割って算出します。長い時間が経過すると、この比率はほとんど変化しなくなります。キャッシュから読み取る方が、ディスクから読み取るよりもコストが低いので、この比率が高くなるようにします。一般に、SQL Server が使用できるメモリの量を増やすことで、バッファ キャッシュ ヒット率を増加させることができます。 |
Checkpoint pages/sec |
チェックポイントにより、またはすべてのダーティ ページをフラッシュする必要があるその他の操作により、ディスクにフラッシュされた 1 秒あたりのページ数。 |
Database pages |
データベースの内容が含まれたバッファ プール内のページの数。 |
Free list stalls/sec |
フリー ページを待機する必要があった要求の 1 秒あたりの数。 |
Free pages |
すべてのフリー リストにあるページの総数。 |
Lazy writes/sec |
バッファ マネージャのレイジー ライタにより書き込まれたバッファの 1 秒あたりの数。レイジー ライタとは、古いダーティ バッファ (異なるページのためにバッファを再利用する前にディスクに書き戻す必要がある変更を含んでいるバッファ) をまとめてフラッシュし、ユーザー プロセスで使用できるようにするシステム プロセスです。レイジー ライタを使用することで、使用可能なバッファを作成するために頻繁にチェックポイントを実行する必要がなくなります。 |
Page life expectancy |
ページが参照されないままバッファ プールに存在する秒数。 |
Page lookups/sec |
バッファ プールのページを検索する要求の 1 秒あたりの数。 |
Page reads/sec |
物理的なデータベース ページ読み取りが実行される 1 秒あたりの回数。すべてのデータベースのページの物理的な読み取りの総数が表示されます。物理 I/O にはコストがかかるので、データ キャッシュを大きくしたり、高性能のインデックスや効率のよいクエリを使用したり、データベースのデザインを変更したりすることで、できる限りコストを抑えることができます。 |
Page writes/sec |
データベース ページの物理的な書き込みが実行される 1 秒あたりの回数。 |
Readahead pages/sec |
使用を見越して読み取られた 1 秒あたりのページ数。 |
Reserved pages |
バッファ プールに予約されたページの数。 |
Stolen pages |
プロシージャ キャッシュなど、サーバーのさまざまな目的に使用されたページの数。 |
Target pages |
バッファ プール内の適切なページ数。 |
Total pages |
データベース ページ、フリー ページ、別のサーバーが使用するページなど、バッファ プール内のページ数。 |