は最後に、私が自分で解決策を見つけました。親しみやすいコミュニティに感謝します。
同僚の場合、誰が本当に問題を理解しているのですか。 (全体のテストスクリプトは、一部である点を「選択」)は、このアプローチを使用してください:
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;
の
が重複する可能性:https://dba.stackexchange.com/questions/16493/tracking-stored-procedure-usage –
downvotesありがとう、それは重複していません。質問にもっと挑戦してください。 – Juozas
いくつかのサンプル入力、期待される出力、何か試したことがあります。それが私が重複していると感じた理由です。 –