2014-03-05 48 views
3

Microsoft提供的這個sql允許我查看最近執行的存儲過程,但不能查看作爲參數傳遞的值。顯示最近執行的存儲過程,包括參數

我應該在哪裏查找這些信息?

SELECT TOP 10 
    d.object_id, d.database_id, 
    OBJECT_NAME(object_id, database_id) 'proc name', 
    d.cached_time, d.last_execution_time, d.total_elapsed_time, 
    d.total_elapsed_time/d.execution_count AS [avg_elapsed_time], 
    d.last_elapsed_time, d.execution_count 
FROM 
    sys.dm_exec_procedure_stats AS d 
ORDER BY 
    [total_worker_time] DESC; 
+1

我不認爲這種信息是在任何地方(默認情況下)持續存在。你得到的只是一個查詢過程統計使用系統表。它用於優化 – jean

+0

也許來得及過去但未來的信息爲時已晚,您可以創建一個審計/日誌表,並從SPROC中插入所需的值(可能包括用戶信息)。 – Nico

回答

2

這些信息實際上並不存在的任何地方(除非像其他人所說,你自己保存它)。但是,您可以使用SQL事件探查器或擴展事件來查看它。使用SQL事件探查器,您需要選擇RPC:CompletedSQL:BatchCompleted事件,並確保爲這兩個事件選擇了TextData列。

1

爲什麼不把你的存儲過程插入到數據庫的someTable中。

喜歡的東西

INSERT INTO someTable (Value) 
SELECT @StoredProcedureInsertParamter