SQL Server 2000-如何找出当前正在运行的存储过程?

时间:2020-03-06 14:40:56  来源:igfitidea点击:

我想知道当前正在运行哪些存储过程来诊断一些性能问题。我怎样才能找到答案?

解决方案

我们可以使用SQL事件探查器找出来。

编辑:
如果可以停止正在运行的应用程序,则可以启动SQL Profiler,运行该应用程序,然后查看正在运行的内容(包括存储过程)。

我认为我们可以执行sp_who2以获得连接列表,但是随后我们需要通过SQL Profiler在特定连接上运行跟踪以查看其执行的情况。我认为这不适用于已经在运行的查询。

使用企业管理器,可以打开"管理"树部分,然后选择"当前活动"->"流程信息"。双击进程ID将向我们显示该进程正在运行什么。如果是存储过程,则不会显示参数。为此,最好使用Brian Kim的使用SQL Profiler的建议。

DBCC INPUTBUFFER将为我们显示spid上输入的前255个字符(我们可以使用sp_who2来确定我们感兴趣的spid)。要查看整个命令,可以使用:: fn_get_sql()。

用于分析锁和死锁的非常有用的脚本:http://www.sommarskog.se/sqlutil/aba_lockinfo.html

它显示过程或者触发器以及当前语句。