2014-10-29 72 views
0

我的应用程序和SQL Server(2008 R2)存在实际问题。如何确定哪些存储过程正在执行(MSSQL 2008 R2)

我有一个存储过程由于错误配置的SQLCMD变量而失败,但对存储过程的调用位于我没有源代码的程序集中。

有没有办法看到哪个存储过程正在执行?或者有没有一种方法可以通过SQL查询来确定哪些存储过程已执行以及何时执行?

我真的被卡住了。请帮忙!

中号

+0

在SQL事件探查器中启动一个跟踪,它将显示正在执行的所有查询 – radar 2014-10-29 16:19:47

+0

事件探查器有很高的开销,你也可以用服务器端跟踪来做到这一点,但涉及更多。 – 2014-10-29 17:01:42

回答

0

你可以尝试在你的数据库运行以下命令:

select OBJECT_NAME([object_id], database_id), last_execution_time, execution_count 
from  sys.dm_exec_procedure_stats 
order by last_execution_time desc 

文档:http://msdn.microsoft.com/en-us/library/cc280701.aspx

这使你在执行的时候什么上次运行多少次的快照它自上次编译以来一直执行。不幸的是,这个表并不幸地让存储过程获得运行的日志,就在它们最后运行时以及其他有用的信息时。

有一个更复杂的方法,你可以看看SQL Server Audit,SQL Server 2008的一个新功能。我没有太多的经验,但是如果你被超级卡住了,这应该会给你一个起点。

相关问题