SQL Server: SQL Statistics オブジェクトSQL Server, SQL Statistics Object

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL ServerSQLServer:SQL Statistics オブジェクトには、コンパイルの動作や、 SQL ServerSQL Serverのインスタンスに送信された要求の種類を監視するためのカウンターが用意されています。The SQLServer:SQL Statistics object in SQL ServerSQL Server provides counters to monitor compilation and the type of requests sent to an instance of SQL ServerSQL Server. クエリのコンパイルと再コンパイルの回数、および SQL ServerSQL Server のインスタンスが受信するバッチの数を監視すると、 SQL ServerSQL Server がユーザー クエリを処理する速度や、クエリ オプティマイザーによるクエリ処理の効果がわかります。Monitoring the number of query compilations and recompilations and the number of batches received by an instance of SQL ServerSQL Server gives you an indication of how quickly SQL ServerSQL Server is processing user queries and how effectively the query optimizer is processing the queries.

コンパイルは、クエリのターンアラウンド時間の大半を占めます。Compilation is a significant part of a query's turnaround time. データベース エンジンDatabase Engine では、コンパイルのコストを節約するために、コンパイル済みのクエリ プランがクエリ キャッシュに保存されます。In order to save the compilation cost, the データベース エンジンDatabase Engine saves the compiled query plan in a query cache. キャッシュを使用して、コンパイル済みのクエリを再使用のために保存すると、後から実行するときに再コンパイルの必要がなくなるので、コンパイルを減らすことができます。The objective of the cache is to reduce compilation by storing compiled queries for later reuse, therefore ending the requirement to recompile queries when later executed. ただし、一意のクエリはすべて、少なくとも 1 回コンパイルする必要があります。However, each unique query must be compiled at least one time. クエリの再コンパイルは、次の要因によって生じることがあります。Query recompilations can be caused by the following factors:

  • テーブルへの列またはインデックスの追加など、ベース スキーマの変更を含むスキーマの変更、またはテーブルに大量の行を挿入したり、テーブルから大量の行を削除することなどの統計スキーマの変更。Schema changes, including base schema changes such as adding columns or indexes to a table, or statistics schema changes such as inserting or deleting a significant number of rows from a table.

  • 環境 (SET ステートメント) の変更。Environment (SET statement) changes. ANSI_PADDING や ANSI_NULLS などのセッション設定の変更によって、クエリが再コンパイルされることがあります。Changes in session settings such as ANSI_PADDING or ANSI_NULLS can cause a query to be recompiled.

簡易パラメーター化と強制パラメーター化の詳細については、「ALTER DATABASE (Transact-SQL)」を参照してください。For more information about simple and forced parameterization, see ALTER DATABASE (Transact-SQL).

SQL ServerSQL Server SQL Statistics カウンターを次に示します。These are the SQL ServerSQL Server SQL Statistics counters.

SQL Server SQL Statistics カウンターSQL Server SQL Statistics counters [説明]Description
Auto-Param Attempts/secAuto-Param Attempts/sec 1 秒あたりの自動パラメーター化が実行された数。Number of auto-parameterization attempts per second. 総数は、失敗した試行、安全な試行、および安全ではない試行の合計でなければなりません。Total should be the sum of the failed, safe, and unsafe auto-parameterizations. SQL ServerSQL Server のインスタンスにより、いくつかのリテラルをパラメーターに置き換えることによって Transact-SQLTransact-SQL 要求のパラメーター化が試行されると、自動パラメーター化が発生します。複数の類似した要求で、結果としてキャッシュされた実行プランの再使用を可能にするためです。Auto-parameterization occurs when an instance of SQL ServerSQL Server tries to parameterize a Transact-SQLTransact-SQL request by replacing some literals with parameters so that reuse of the resulting cached execution plan across multiple similar-looking requests is possible. 自動パラメーター化は、 SQL ServerSQL Serverの新しいバージョンでは簡易パラメーター化とも呼ばれています。Note that auto-parameterizations are also known as simple parameterizations in newer versions of SQL ServerSQL Server. このカウンターには、強制パラメーター化は含まれません。This counter does not include forced parameterizations.
Batch Requests/secBatch Requests/sec 1 秒あたりに受信した Transact-SQLTransact-SQL コマンドのバッチの数。Number of Transact-SQLTransact-SQL command batches received per second. この統計値はすべての制約の影響を受けます。制約とは、I/O、ユーザー数、キャッシュ サイズ、要求の複雑さなどです。This statistic is affected by all constraints (such as I/O, number of users, cache size, complexity of requests, and so on). バッチ要求の数が多いことは、スループットが優れていることを意味します。High batch requests mean good throughput.
Failed Auto-Params/secFailed Auto-Params/sec 1 秒あたりの失敗した自動パラメーター化を実行した回数。Number of failed auto-parameterization attempts per second. これは小さな値でなければなりません。This should be small. 自動パラメーター化は、 SQL ServerSQL Serverの最新バージョンでは簡易パラメーター化とも呼ばれています。Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL ServerSQL Server.
Forced Parameterizations/secForced Parameterizations/sec 強制パラメーター化に成功した 1 秒あたりの回数。Number of successful forced parameterizations per second.
Guided Plan Executions/secGuided Plan Executions/sec プラン ガイドを使用してクエリ プランが生成された、1 秒あたりのプラン実行回数。Number of plan executions per second in which the query plan has been generated by using a plan guide.
Misguided Plan Executions/secMisguided Plan Executions/sec プランの生成中にプラン ガイドが適用できなかった、1 秒あたりのプラン実行回数。Number of plan executions per second in which a plan guide could not be honored during plan generation. このプラン ガイドは無視され、通常のコンパイルを使用して実行済みプランが生成されています。The plan guide was disregarded and normal compilation was used to generate the executed plan.
Safe Auto-Params/secSafe Auto-Params/sec 1 秒あたりの安全な自動パラメーター化を実行した回数。Number of safe auto-parameterization attempts per second. 安全とは、キャッシュされた実行プランを、さまざまな類似する Transact-SQLTransact-SQL ステートメント間で共有できるという判断のことを言います。Safe refers to a determination that a cached execution plan can be shared between different similar-looking Transact-SQLTransact-SQL statements. SQL ServerSQL Server 多くの自動パラメーター化が試行され、そのうちのいくつかは安全という結果になり、その他は安全ではないという結果になります。makes many auto-parameterization attempts some of which turn out to be safe and others fail. 自動パラメーター化は、 SQL ServerSQL Serverの最新バージョンでは簡易パラメーター化とも呼ばれています。Note that auto-parameterizations are also known as simple parameterizations in later versions of SQL ServerSQL Server. これには、強制的なパラメーター化は含まれません。This does not include forced parameterizations.
SQL Attention rateSQL Attention rate 1 秒あたりのアテンションの数。Number of attentions per second. アテンションは、現在実行している要求を終了するために、クライアントから要求されます。An attention is a request by the client to end the currently running request.
SQL Compilations/secSQL Compilations/sec 1 秒あたりの SQL コンパイルの回数。Number of SQL compilations per second. コンパイル コード パスが入力された回数を示します。Indicates the number of times the compile code path is entered. SQL ServerSQL Serverのステートメントレベルの再コンパイルによって発生したコンパイル回数を含みます。Includes compiles caused by statement-level recompilations in SQL ServerSQL Server. SQL ServerSQL Server のユーザー利用状況が安定化すると、この値は定常状態に到達します。After SQL ServerSQL Server user activity is stable, this value reaches a steady state.
SQL Re-Compilations/secSQL Re-Compilations/sec 1 秒あたりのステートメントの再コンパイル回数。Number of statement recompiles per second. ステートメントの再コンパイルがトリガーされた回数をカウントします。Counts the number of times statement recompiles are triggered. 一般に、再コンパイルは少なくする必要があります。Generally, you want the recompiles to be low.
Unsafe Auto-Params/secUnsafe Auto-Params/sec 1 秒あたりの安全でない自動パラメーター化の回数。Number of unsafe auto-parameterization attempts per second. たとえば、クエリには、キャッシュされたプランを共有できないいくつかの特性があります。For example, the query has some characteristics that prevent the cached plan from being shared. これらは、安全ではないと見なされています。These are designated as unsafe. これは、強制パラメーター化の数としてはカウントされません。This does not count the number of forced parameterizations.

参照See Also

SQL Server の Plan Cache オブジェクト SQL Server, Plan Cache Object
リソースの利用状況の監視 (システム モニター)Monitor Resource Usage (System Monitor)