确定是否使用SQL Server 2005运行特定的Windows应用程序

我需要确定一个特定的应用程序是否从SQL Server 2005作业运行。 问题是我们用来发送数据的一个应用程序会挂起,导致调用它的任何后续作业出现问题。 如果我也可以获得CPU时间,我可以确定它是否可能是一个挂起的过程。

正在运行的应用程序的列表将是好的,但能够查找一个特定的可执行文件名称与CPU时间将是太棒了!

由作业步骤启动的任何应用程序将显示为由与SQL server代理相同的登录帐户运行。 对于不会用于其他服务的SQL server代理使用特定的服务帐户。 这使您可以使用任务管理器,性能监视器等来监视由作业启动的应用程序。

尝试打开SQL server活动监视器。 你也可以从存储过程sp_who2中获得一些信息。

让作业运行外部脚本(批处理文件,KSH脚本)而不是TSQL脚本。

我认为最好的方法是运行SQL server Profiler以及性能监视器,并等待指定的作业运行。 然后将perfmon stats导入到分析器中。 您可以通过转到“文件” – >“导入性能数据…”并将其指向性能监视器日志,从SQL server分析器执行此操作。

您应该能够选择Process(all)计数器来给出所有正在运行的进程的列表,以及为进程获取CPU时间。 然后,您可以将此关联到Profiler日志中的application name和/或hostname ,以查看正在发生的事情。

我使用(免费)替换任务管理器“进程资源管理器”,以更好地了解exe的依赖关系。

可能值得用这个来监视你的问题。

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx