q3256 发表于 2017-6-30 19:22:07

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.


实现过程


新建一个测试传参存储过程




CREATE PROCEDURE test_p_azure
   (
       @name NVARCHAR(50) ,
       @flag INT
   )

AS
   BEGIN
         SET NOCOUNT ON;
         SELECT1;
         SET NOCOUNT OFF;
   END;



先执行该存储过程,通过查询sys.sysprocess 的spid 来查看存储过程脚本






执行监控语句




   SELECTa.spid ,
             b.text
   FROM    sys.sysprocesses a
             CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b
   WHERE   a.spid > 50
             AND spid <> @@SPID;



基本上解决监控查看存储过程传参的问题。

如遇到sys.sysprocess无法查询到需监控的存储过程,可以试着调整需监控的存储过程如下:





再执行上述监控语句。


注意


需有执行上述监控语句的权限。
页: [1]
查看完整版本: Azure sql database 监控存储过程的传参情况