Sql server 为什么SQL Server代理作业无休止地运行?

Sql server 为什么SQL Server代理作业无休止地运行?,sql-server,sql-agent-job,Sql Server,Sql Agent Job,目前,我正在开发一个从不同网站/API收集数据并将这些数据存储在SQL Server数据库中的系统。然后,reporting service将基于此数据生成报告 我们在SQL Server代理中运行了很多作业(每个作业都有一些步骤,每个步骤可以是-PowerShell脚本或SQL…) SQL Server的版本为2017 我们有一个问题,几乎每天都有开始但从未结束的作业(状态为“正在执行”)。这项工作不能干那么久 有人知道如何解决这个问题吗?或者至少该如何调查 虚拟机上的CPU使用率为+-2

目前,我正在开发一个从不同网站/API收集数据并将这些数据存储在SQL Server数据库中的系统。然后,reporting service将基于此数据生成报告

我们在SQL Server代理中运行了很多作业(每个作业都有一些步骤,每个步骤可以是-PowerShell脚本或SQL…)

SQL Server的版本为2017

我们有一个问题,几乎每天都有开始但从未结束的作业(状态为“正在执行”)。这项工作不能干那么久

有人知道如何解决这个问题吗?或者至少该如何调查


虚拟机上的CPU使用率为+-20%。内存使用率-50%。因此,这不是资源问题。

使用
sp_who2
或使用活动监视器查找锁?打开作业包,查看它们的实际功能。例如,如果作业在非交互式会话中等待用户按下按钮,则它可以轻松地永远运行。PowerShell本身往往非常聪明,不会这样做(特别是当传递了
-非交互式
选项时),但任何子进程都可能不会这样做。或者更好的方法是,使用它来检查阻塞。这个过程有很好的文档记录,非常棒。如果可以的话,加入一堆“在代码中”步骤,记录到SQL表中,甚至只是转储到文本文件中。然后你就可以知道它到底挂在哪里了。整个窍门就是找到它挂在哪里,一旦你弄明白了,你就能解决真正的问题。@Richard Hansell没有找到任何锁。每行中的BlockedBy列为空