背景 實施開發的同事找到我,反饋說項目中使用Azure sql database 之後,無法使用Profiler來監控自己開發的存儲過程的參數傳參情況。確實profiler這些實例級別的工具在Azure sql database下是不支持的,那我們有沒有辦法,變相實現監控參數情況,特寫一篇博客記錄一 ...
背景
實施開發的同事找到我,反饋說項目中使用Azure sql database 之後,無法使用Profiler來監控自己開發的存儲過程的參數傳參情況。確實profiler這些實例級別的工具在Azure sql database下是不支持的,那我們有沒有辦法,變相實現監控參數情況,特寫一篇博客記錄一下。測試環境
Microsoft SQL Azure (RTM) - 12.0.2000.8 Mar 30 2017 01:30:03 Copyright (C) 2016 Microsoft Corporation. All rights reserved.實現過程
新建一個測試傳參存儲過程1 CREATE PROCEDURE test_p_azure 2 ( 3 @name NVARCHAR(50) , 4 @flag INT 5 ) 6 /* 7 測試存儲過程傳參 8 */ 9 AS 10 BEGIN 11 SET NOCOUNT ON; 12 SELECT 1; 13 SET NOCOUNT OFF; 14 END;先執行該存儲過程,通過查詢sys.sysprocess 的spid 來查看存儲過程腳本
執行監控語句
1 SELECT a.spid , 2 b.text 3 FROM sys.sysprocesses a 4 CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b 5 WHERE a.spid > 50 6 AND spid <> @@SPID;基本上解決監控查看存儲過程傳參的問題。 如遇到sys.sysprocess無法查詢到需監控的存儲過程,可以試著調整需監控的存儲過程如下: 再執行上述監控語句。