SQL Server: SQL Statistics オブジェクト

Microsoft SQL Server の SQLServer:SQL Statistics オブジェクトには、コンパイルや SQL Server のインスタンスに送信された要求の種類を監視するためのカウンタが用意されています。クエリのコンパイルと再コンパイルの回数、および SQL Server のインスタンスが受信するバッチの数を監視すると、SQL Server がユーザー クエリを処理する速度や、クエリ オプティマイザによるクエリ処理の効果がわかります。

コンパイルは、クエリのターンアラウンド時間の大半を占めます。データベース エンジンでは、コンパイルのコストを節約するために、コンパイル済みのクエリ プランがクエリ キャッシュに保存されます。キャッシュを使用して、コンパイル済みのクエリを再使用のために保存すると、後から実行するときに再コンパイルの必要がなくなるので、コンパイルを減らすことができます。ただし、一意のクエリはすべて、少なくとも 1 回コンパイルする必要があります。クエリの再コンパイルは、次の要因によって生じることがあります。

  • テーブルへの列またはインデックスの追加など、ベース スキーマの変更を含むスキーマの変更、またはテーブルに大量の行を挿入したり、テーブルから大量の行を削除することなどの統計スキーマの変更。
  • 環境 (SET ステートメント) の変更。ANSI_PADDING や ANSI_NULLS などのセッション設定の変更によって、クエリが再コンパイルされることがあります。

簡易パラメータ化と強制パラメータ化の詳細については、「ALTER DATABASE (Transact-SQL)」および「簡易パラメータ化」を参照してください。

SQL Server SQL Statistics カウンタを次に示します。

SQL Server SQL Statistics カウンタ 説明

Auto-Param Attempts/sec

1 秒あたりの自動パラメータ化が実行された数。総数は、失敗した試行、安全な試行、および安全ではない試行の合計でなければなりません。SQL Server のインスタンスにより、いくつかのリテラルをパラメータに置き換えることによって Transact-SQL 要求のパラメータ化が試行されると、自動パラメータ化が発生します。複数の類似した要求で、結果としてキャッシュされた実行プランの再使用を可能にするためです。自動パラメータ化は、Microsoft SQL Server 2000 では簡易パラメータ化とも呼ばれています。このカウンタには、強制パラメータ化は含まれません。

Batch Requests/sec

1 秒あたりに受信した Transact-SQL コマンドのバッチの数。この統計値はすべての制約の影響を受けます。制約とは、I/O、ユーザー数、キャッシュ サイズ、要求の複雑さなどです。バッチ要求の数が多いことは、スループットが優れていることを意味します。

Failed Auto-Params/sec

1 秒あたりの失敗した自動パラメータ化を実行した回数。これは小さな値でなければなりません。自動パラメータ化は、SQL Server 2005 では簡易パラメータ化とも呼ばれます。

Forced Parameterizations/sec

強制パラメータ化に成功した 1 秒あたりの回数。

Safe Auto-Params/sec

1 秒あたりの安全な自動パラメータ化を実行した回数。安全とは、キャッシュされた実行プランを、さまざまな類似する Transact-SQL ステートメント間で共有できるという判断のことを言います。SQL Server では、多くの自動パラメータ化が試行され、そのうちのいくつかは安全という結果になり、その他は安全ではないという結果になります。自動パラメータ化は、SQL Server 2005 では簡易パラメータ化とも呼ばれます。これには、強制的なパラメータ化は含まれません。

SQL Attention rate

1 秒あたりのアテンションの数。アテンションは、現在実行している要求を終了するために、クライアントから要求されます。

SQL Compilations/sec

1 秒あたりの SQL コンパイルの回数。コンパイル コード パスが入力された回数を示します。SQL Server 2005 のステートメントレベルの再コンパイルによって発生したコンパイル回数を含みます。SQL Server のユーザー利用状況が安定化すると、この値は定常状態に到達します。

SQL Re-Compilations/sec

1 秒あたりのステートメントの再コンパイル回数。ステートメントの再コンパイルがトリガされた回数をカウントします。一般に、再コンパイルは少なくする必要があります。SQL Server 2005 では、Microsoft SQL Server 2000 のバッチスコープの再コンパイルではなく、ステートメントスコープの再コンパイルを使用します。したがって、SQL Server 2005 と以前のバージョンとの間で、このカウンタ値の直接的な比較はできません。

Unsafe Auto-Params/sec

1 秒あたりの安全でない自動パラメータ化の回数。たとえば、クエリには、キャッシュされたプランを共有できないいくつかの特性があります。これらは、安全ではないとみなされています。これは、強制パラメータ化の数としてはカウントされません。

参照

関連項目

SQL Server の Plan Cache オブジェクト

その他の技術情報

リソースの利用状況の監視 (システム モニタ)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手