Sql server SQL Server进程被tempdb阻止

Sql server SQL Server进程被tempdb阻止,sql-server,Sql Server,当我试图在我的SQL Server数据库中执行查询时,它花费的时间太长。当我打开资源监视器时,我看到resource_信号量等待类型,并且我看到查询被ProcessID 56阻塞。从下图中可以看出,在我的例子中,进程ID 56属于tempDB。有人能解释一下这里会发生什么吗?如果从Nodejs服务器运行查询,我会得到: RequestError: Query timeout expired 我通过终止进程56解决了这个问题。一旦我这样做并刷新了进程监视器,它就会在我删除的其他进程上显示阻塞,从

当我试图在我的SQL Server数据库中执行查询时,它花费的时间太长。当我打开资源监视器时,我看到resource_信号量等待类型,并且我看到查询被ProcessID 56阻塞。从下图中可以看出,在我的例子中,进程ID 56属于tempDB。有人能解释一下这里会发生什么吗?如果从Nodejs服务器运行查询,我会得到:

RequestError: Query timeout expired
我通过终止进程56解决了这个问题。一旦我这样做并刷新了进程监视器,它就会在我删除的其他进程上显示阻塞,从而解决了问题。但现在这种情况已经发生过好几次了,我只是想知道我能做些什么来防止将来出现这种情况


这是生产系统吗?你不能随便去杀蜘蛛!有许多系统DMV可以用来找出相关spid在做什么,一个方便的工具是TempDB,它被服务器上的其他数据库使用,并且一直在使用,这是完全正常的。你的问题是阻塞。您需要找到阻塞的查询,查看阻塞的原因,然后修复该问题。或者可能是您的TempDB设置不正确和/或太小。这是一个开发系统。不过,我确实复制了prod数据库。我从未在生产中遇到过这个问题,但我担心如果它发生在开发中,它可能会发生在生产中。另外,我在哪里可以了解删除SPID的危险?我将下载该工具作为well@perry147谢谢你的信息。tempdb大小声明为16 MB,可用空间为4.60 MB。我不知道我能看到阻塞的查询。我看到的只是一个SELECT命令。我是否使用WhoIsActive工具来解决这个问题?4.60 MB???这是您的问题,TempDB无法增长。是的,您可以使用Sp_WhoIsActive和SQLText列,它将显示每个spid运行的sql命令。