2017-06-20 8 views
-3

実行されたストアドプロシージャの統計情報が必要です。論理読み込み、物理読み込み、期間、書き込み、行数です。あるいは、これを単純化することもできます。同じセッションデータを持つには十分です。 SET STATISTICS IO ON/OFFのようなものですが、テーブルに結果を保存する必要があります。したがって、SET STATISTICS IOはオプションではありません。 ここに詳しい知識がありますか?私は期待しSQL Server(2012+)実行されたプロシージャの統計

のようなもの:

EXEC [my_proc]; 

INSERT INTO [sp_exec_stats] 
([lreads], [preads], ..., [rcount]) 
VALUES(?, ?, ..., ?); 
+0

が重複する可能性:https://dba.stackexchange.com/questions/16493/tracking-stored-procedure-usage –

+0

downvotesありがとう、それは重複していません。質問にもっと挑戦してください。 – Juozas

+0

いくつかのサンプル入力、期待される出力、何か試したことがあります。それが私が重複していると感じた理由です。 –

答えて

0

は最後に、私が自分で解決策を見つけました。親しみやすいコミュニティに感謝します。

同僚の場合、誰が本当に問題を理解しているのですか。 (全体のテストスクリプトは、一部である点を「選択」)は、このアプローチを使用してください:

CREATE PROCEDURE [my_dummy_sp] 
    @rowcount INT OUTPUT 
AS 
BEGIN 

    SELECT TOP 10 * FROM [sys].[objects]; 
    SET @rowcount = @@ROWCOUNT; 

    RETURN 0; 

END;  

GO 


DECLARE @sp_exec_stats TABLE 
(
    [rec_id]   BIGINT IDENTITY(1, 1) 
    ,[sp_name]   NVARCHAR(256) 
    ,[db_name]   NVARCHAR(256) 
    ,[sys_dt]   DATETIMEOFFSET(7) 
    ,[logical_reads] INT 
    ,[physical_reads] INT 
    ,[duration]   INT 
    ,[writes]   INT 
    ,[rowcount]   INT 
    ,[cpu_time]   INT 
); 

DECLARE @rowcount INT; 

EXECUTE [my_dummy_sp] 
    @rowcount = @rowcount OUTPUT; 

INSERT INTO @sp_exec_stats 
(
    [sp_name] 
    ,[db_name]   
    ,[sys_dt]   
    ,[logical_reads]  
    ,[physical_reads] 
    ,[duration]   
    ,[writes]   
    ,[rowcount] 
    ,[cpu_time]  
) 
SELECT TOP 1 
    [sp_name]   = 'my_dummy_sp' 
    ,[db_name]   = DB_NAME()  
    ,[sys_dt]   = [last_execution_time] 
    ,[logical_reads] = [last_logical_reads] 
    ,[physical_reads] = [last_physical_reads] 
    ,[duration]   = [last_elapsed_time] 
    ,[writes]   = [last_logical_writes] 
    ,[rowcount]   = @rowcount 
    ,[cpu_time]   = [last_worker_time]  
FROM 
    [sys].[dm_exec_procedure_stats] 
WHERE 
     [object_id]  = OBJECT_ID('my_dummy_sp')  
ORDER BY 
    [last_execution_time] DESC; 


DROP PROCEDURE [my_dummy_sp]; 
SELECT * FROM @sp_exec_stats; 
関連する問題