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无法查询到需监控的存储过程,可以试着调整需监控的存储过程如下:

 

再执行上述监控语句。
 

注意

需有执行上述监控语句的权限。
posted @ 2017-05-08 22:13  jil.wen  阅读(590)  评论(0编辑  收藏  举报