合 MSSQL的进程运行状态介绍 (Runnable、Running、Suspended、Sleeping、Pending、Dormant、Background、Spinlock)
Tags: MSSQLSQL Server进程BackgroundDormantPendingRunnableRunningSleepingSpinlockSuspended状态
简介
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、查看的几种方式: