我们有 8 个进程,每个进程通过游标处理表中的一组单独的数据,以便可以使用多个 CPU 来迭代数据。这用于数据迁移,因此此时服务器计算机未用于其他任何用途。
有时,此进程会锁定,并且 SQL 的 CPU 使用率实际上会回落到 0。这些进程中的每一个都陷入了 WAITFOR 状态,最长可达 30 秒,然后再次降至 0。我们的 SQL 或代码端没有 WAITFOR 命令,并且 SQL 不会告诉我它在活动监视器或 DMV 中等待什么。这种情况似乎更多地发生在资源规格较低的机器上,但我觉得一旦 CPU 使用率回落,SQL 最终应该停止等待 CPU。
我在这里遗漏了什么吗?我们有什么办法可以解锁这些进程吗?