MSSQL的进程运行状态介绍 (Runnable、Running、Suspended、Sleeping、Pending、Dormant、Background、Spinlock)

0    134    1

Tags:

👉 本文共约1921个字,系统预计阅读时间或需8分钟。

简介

1、状态(status)解释

  • “pending”(等待),代表这个process,既没有Thread可用,也没有CPU可用,正在同时等待这两项系统资源。
  • “runnable”,代表这个process,有Thread可用,但没有CPU可用,所以它正在等待CPU这项系统资源。
  • “running”,代表这个process,有Thread可用,有CPU可用。
  • “suspended”(暂停),代表这个process,正在「等待」别的process执行,等待的系统资源可能是Disk I/O或数据库的Lock。(若这个process执行的SELECT没加上NOLOCK关键字,而别的process正在进行「交易」或写入(会加Lock),则这个SELECT的process就会呈现“suspended”的状态。)
  • “sleeping”,代表这个process,目前没在做任何事,正在等待进一步的指令。(sleeping 代表建立了数据库连接,但程序没有发出SQL命令. 因为应用程序为了减少打开和关闭连接的开销,在完成数据库中的操作后,仍然保持数据库的连接,这些连接的最主要目的是重用。)
  • “dormant”(暂时搁置、休眠),代表SQL Server正在对这个process做reset。
  • “background”,代表这个process正在SQL Server背景执行。即使你看到有很多“background”process正在执行,也不必担心。
  • “Spinlock”(自旋锁),本质上意味着查询处于某种运行模式,它在CPU中忙于等待自己的轮询。

dormant = SQL Server is resetting the session.

running = The session is running one or more batches. When Multiple Active Result Sets (MARS) is enabled, a session can run multiple batches. For more information, see Using Multiple Active Result Sets (MARS).

background = The session is running a background task, such as deadlock detection.

rollback = The session has a transaction rollback in process.

pending = The session is waiting for a worker thread to become available.

runnable = The task in the session is in the runnable queue of a scheduler while waiting to get a time quantum.

spinloop = The task in the session is waiting for a spinlock to become free.

suspended = The session is waiting for an event, such as I/O, to complete.

2、查看的几种方式:

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复