次の方法で共有


sys.sp_xtp_control_query_exec_stats (Transact-SQL)

適用対象: SQL Server

インスタンスに関するすべてのネイティブ コンパイル ストアド プロシージャ、または特定のネイティブ コンパイル ストアド プロシージャのクエリごとの統計コレクションを有効にします。

統計コレクションを有効にすると、パフォーマンスが低下します。 1 つのストアド プロシージャまたはネイティブ コンパイル ストアド プロシージャのトラブルシューティングのみを行う必要がある場合は、ネイティブ コンパイル ストアド プロシージャの統計収集のみを有効にすることができます。

ネイティブ コンパイル ストアド プロシージャすべてに対してプロシージャ レベルで統計収集を有効にするには、 sys.sp_xtp_control_proc_exec_statsを参照してください。

構文

sys.sp_xtp_control_query_exec_stats
    [ [ @new_collection_value = ] collection_value ]
    [ , [ @database_id = ] database_id ]
    [ , [ @xtp_object_id = ] procedure_id ]
    , [ @old_collection_value = ] old_collection_value OUTPUT
[ ; ]

引数

[ @new_collection_value = ] collection_value

プロシージャ レベルの統計収集がオン (1) かオフ (0) かを決定します。 @new_collection_valueビットです。

@new_collection_value は、SQL Server の起動時に 0 に設定されます。

[ @database_id = ] database_id、 [ @xtp_object_id = ] procedure_id

ネイティブ コンパイル ストアド プロシージャのデータベース ID とオブジェクト ID (データ型 int)。 インスタンス (sys.sp_xtp_control_proc_exec_stats) に対して統計収集が有効になっている場合は、ネイティブ コンパイル ストアド プロシージャの統計が収集されます。 インスタンスで統計収集をオフにしても、ネイティブ コンパイル ストアド プロシージャごとに統計収集がオフになりません。

sys.databasessys.proceduresDB_ID、またはOBJECT_IDを使用して、データベースとストアド プロシージャの ID を取得します。

[ @old_collection_value = ] old_collection_value OUTPUT

現在の状態を返します。 @old_collection_valueビットです。

リターン コードの値

0 成功を収めます。 エラーの場合は 0 以外。

アクセス許可

固定 sysadmin ロールのメンバーシップが必要です。

次のコード サンプルは、インスタンスのすべてのネイティブ コンパイル ストアド プロシージャと、特定のネイティブ コンパイル ストアド プロシージャに対して統計コレクションを有効にする方法を示しています。

DECLARE @c BIT;

EXEC sys.sp_xtp_control_query_exec_stats @new_collection_value = 1;

EXEC sys.sp_xtp_control_query_exec_stats @old_collection_value = @c OUTPUT;

SELECT @c AS 'collection status';

EXEC sys.sp_xtp_control_query_exec_stats @new_collection_value = 1,
    @database_id = 5,
    @xtp_object_id = 41576255;

EXEC sys.sp_xtp_control_query_exec_stats @database_id = 5,
    @xtp_object_id = 41576255,
    @old_collection_value = @c OUTPUT;

SELECT @c AS 'collection status';