sys.sp_xtp_control_query_exec_stats (Transact-SQL)

適用於:SQL Server

針對實例的所有原生編譯預存程式,或特定的原生編譯預存程式啟用每個查詢統計數據集合。

啟用統計數據收集時,效能會降低。 如果您只需要針對一個或一些原生編譯的預存程式進行疑難解答,您可以只針對少數原生編譯的預存程式啟用統計數據收集。

若要在所有原生編譯預存程式的程式層級啟用統計數據收集,請參閱 sys.sp_xtp_control_proc_exec_stats (Transact-SQL)

語法

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位

當 SQL Server 啟動時,@new_collection_value會設定為 0

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

原生編譯預存程式的資料庫標識碼和物件識別碼 (資料類型 int)。 如果實例已啟用統計數據收集 (sys.sp_xtp_control_proc_exec_stats (Transact-SQL),則會收集原生編譯預存程式上的統計數據。 關閉 實例上的統計數據收集並不會關閉個別原生編譯預存程式的統計數據收集。

使用 sys.databases (Transact-SQL)、sys.procedures (Transact-SQL)DB_ID (Transact-SQL)OBJECT_ID (Transact-SQL) 取得資料庫和預存程式的標識符。

[ @old_collection_value = ] old_collection_value OUTPUT

傳回目前狀態。 @old_collection_value位

傳回碼值

0 表示成功。 失敗的非零。

權限

需要固定 系統管理員 角色的成員資格。

範例

下列程式代碼範例示範如何為實例的所有原生編譯預存程式啟用統計數據收集,然後啟用特定原生編譯預存程式的統計數據收集。

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';