SQL Server 2005休眠SPID阻止另一个SPID

SQL Server 2005休眠SPID阻止另一个SPID,sql,sql-server,blocking,Sql,Sql Server,Blocking,我在我的SQL Server数据库中发现了许多休眠进程,看起来其中一个休眠SPID正在阻塞另一个进程,并且该进程也被挂起 谁能解释一下 1.)休眠进程如何阻止另一进程? 2)我看到很多睡眠过程……这正常吗 谢谢 1.)休眠进程如何阻止另一进程 睡眠过程正在等待工作。仔细检查是否真的有睡眠进程阻塞了某些东西,因为这不太可能 2)我看到很多睡眠过程……这正常吗 许多睡眠过程是完全正常的。例如,来自单个web服务器的连接池通常保持10个进程处于打开状态。这对性能非常好 以下是一份: 锁在不同的持续时间

我在我的SQL Server数据库中发现了许多休眠进程,看起来其中一个休眠SPID正在阻塞另一个进程,并且该进程也被挂起

谁能解释一下

1.)休眠进程如何阻止另一进程? 2)我看到很多睡眠过程……这正常吗

谢谢

1.)休眠进程如何阻止另一进程

睡眠过程正在等待工作。仔细检查是否真的有睡眠进程阻塞了某些东西,因为这不太可能

2)我看到很多睡眠过程……这正常吗

许多睡眠过程是完全正常的。例如,来自单个web服务器的连接池通常保持10个进程处于打开状态。这对性能非常好

以下是一份:


锁在不同的持续时间内保持,但最常见的阻塞锁X锁在事务的持续时间内保持。由于事务生存期与批处理生存期完全无关,因此拥有一个休眠SPID来拥有锁是绝对正常的,这仅仅意味着客户端启动了一个事务并执行了一些更新。一旦客户机决定继续并向服务器发出提交或回滚事务的命令,阻塞就会消失

另一种常见的锁是数据库会话锁,它是由使用数据库的连接持有的共享锁。维护连接的简单操作将保持锁,但通常这只与尝试获取数据库上的X锁的操作冲突,如ALTER database DDL

还有一些更深奥的情况,比如恢复后保持的两阶段提交锁,但这些可能不是您的问题。您所看到的最有可能是一个用户从SSM运行某些内容而忘记提交,或者一个保存长事务的应用程序甚至可能正在泄漏这些事务的小案例

Status      Meaning
---------------------------------------------------------------------------------
Background  The SPID is running a background task, such as deadlock detection.
Sleeping    The SPID is not currently executing. This usually indicates that the 
            SPID is awaiting a command from the application.
Running     The SPID is currently running on a scheduler.
Runnable    The SPID is in the runnable queue of a scheduler and waiting to get 
            scheduler time.
Sos_scheduler_yield The SPID was running, but it has voluntarily yielded its 
            time slice on the scheduler to allow another SPID to acquire 
            scheduler time.
Suspended   The SPID is waiting for an event, such as a lock or a latch.
Rollback    The SPID is in rollback of a transaction.
Defwakeup   Indicates that the SPID is waiting for a resource that is in the 
            process of being freed. The waitresource field should indicate the 
            resource in question.