我的 SQL 进程不断从“暂停”切换到“运行”并再次返回

Posted

技术标签:

【中文标题】我的 SQL 进程不断从“暂停”切换到“运行”并再次返回【英文标题】:My SQL process keeps switching from 'suspended' to 'running' and back again 【发布时间】:2016-06-21 09:58:44 【问题描述】:

我有一个查询需要很长时间才能运行(相对而言)。它检索具有多个 varbinary(max) 列的许多行。毫无疑问,此查询需要优化 - 但我的问题非常具体到我在 SQL 活动监视器中看到的不断变化的“任务状态”。

每隔 5 秒左右,任务状态就会从挂起变为运行,然后再返回。这意味着什么?

注意:我可能会提出一个关于优化此类查询的单独问题 - 但我现在不是在问这个问题,而是非常具体地询问状态的快速变化。 p>

不是重复的,因为:

我问的是任务状态快速连续的变化,我不是问挂起是什么意思。我在问(如果挂起意味着等待 I/O)为什么它会等待 I/O,然后不是,很快,每个查询多次。

【问题讨论】:

What does a Status of "Suspended" and high DiskIO means from sp_who2?的可能重复 我用谷歌搜索了暂停的意思,克里斯,这让我想到了这个问题——这不是我在这里要问的。无论如何,谢谢。 对不起,我认为其他问题中的解释就足够了。由于访问磁盘上的页面然后重复处理它们,状态会迅速变化。正如您所提到的,优化查询以减少磁盘 IO 将减少任务暂停的百分比。 【参考方案1】:

这是正常的,SUSPENDED 仅表示会话正在等待事件(例如 I/O)完成。您会发现会话非常频繁地进入和退出此状态。

您可以在此处查看本文档中不同状态的说明:

sp_who (Transact-SQL)

【讨论】:

以上是关于我的 SQL 进程不断从“暂停”切换到“运行”并再次返回的主要内容,如果未能解决你的问题,请参考以下文章

进程控制

进程控制

进程控制

Linux进程

进程控制

Linux中进程在前后台的切换