【问题标题】:How to determine which stored procedures are being executed (MSSQL 2008 R2)如何确定正在执行哪些存储过程 (MSSQL 2008 R2)
【发布时间】:2014-10-30 01:25:56
【问题描述】:

我的应用程序和 SQL Server (2008 R2) 确实存在问题。

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

有没有办法查看正在执行的存储过程?或者有没有办法通过 SQL 查询确定哪些存储过程已被执行以及何时执行?

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

M

【问题讨论】:

  • 在 SQL Profiler 中开始跟踪,这将显示所有正在执行的查询
  • Profiler 的开销很大,您也可以使用服务器端跟踪来做到这一点,但涉及更多。

标签: sql stored-procedures sql-server-profiler


【解决方案1】:

你可以尝试对你的数据库运行这个:

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 的新功能。我没有太多经验,但如果您遇到困难,这应该可以为您提供一个起点.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多