Sql server 确定特定的Windows应用程序是否正在使用SQL Server 2005运行
我需要确定特定的应用程序是否从SQLServer2005作业运行。问题是,我们用来发送数据的一个应用程序将挂起,导致调用它的任何后续作业出现问题。如果我还可以获得CPU时间,我可以确定它是否可能是挂起的进程Sql server 确定特定的Windows应用程序是否正在使用SQL Server 2005运行,sql-server,windows,Sql Server,Windows,我需要确定特定的应用程序是否从SQLServer2005作业运行。问题是,我们用来发送数据的一个应用程序将挂起,导致调用它的任何后续作业出现问题。如果我还可以获得CPU时间,我可以确定它是否可能是挂起的进程 一个正在运行的应用程序列表会很好,但是能够用CPU时间查找特定的可执行文件名将是非常棒的 我认为最好的方法是运行SQL Server Profiler和性能监视器,然后等待指定的作业运行。然后将perfmon统计数据导入分析器。您可以在SQL Server profiler中执行此操作,方法
一个正在运行的应用程序列表会很好,但是能够用CPU时间查找特定的可执行文件名将是非常棒的 我认为最好的方法是运行SQL Server Profiler和性能监视器,然后等待指定的作业运行。然后将perfmon统计数据导入分析器。您可以在SQL Server profiler中执行此操作,方法是转到文件–>导入性能数据…并将其指向性能监视器日志
您应该能够选择
进程(全部)
计数器,以提供所有正在运行的进程的列表,以及获取进程的CPU时间。然后,您可以将其与探查器日志中的应用程序名称
和/或主机名
关联,以查看发生了什么。尝试打开SQL Server活动监视器。您还可以从存储的进程sp_who2获取一些信息。让作业运行外部脚本(批处理文件,KSH脚本),而不是TSQL脚本。由作业步骤启动的任何应用程序都将显示为由与SQL Server代理相同的登录帐户运行。为SQL Server代理使用不会用于任何其他服务的特定服务帐户。这将允许您使用任务管理器、性能监视器等监视作业启动的应用程序。我使用任务管理器的(免费)替换“Process Explorer”来更好地查看exe及其依赖项
这可能值得关注你的问题
在生产环境中,不断在后台运行探查器来检测这不是一个有效的解决方案。如果您能够充分使用探查器上的筛选器,那么服务器所能处理的负载就不会太多。您还可以在指向生产SQL server的另一台服务器上运行探查器,以进一步减轻负载。这在SQL server作业中对我没有帮助。