Sql server 什么阻止了我的查询?

Sql server 什么阻止了我的查询?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,在SqlServer中有一个非常有趣的情况:我找不到阻止另一个进程的进程。 我运行以下选择: SELECT * FROM sys.sysprocesses WHERE blocked > 0 在那里,我收到一行,其中包含blocked中的值“58”。 因此,我发出以下声明: SELECT * FROM sys.sysprocesses WHERE spid = 58 我什么也得不到! 这怎么可能 我正在使用SQLServer2008R2试试这个 SELECT db.name

在SqlServer中有一个非常有趣的情况:我找不到阻止另一个进程的进程。 我运行以下选择:

SELECT * FROM sys.sysprocesses WHERE blocked > 0
在那里,我收到一行,其中包含blocked中的值“58”。 因此,我发出以下声明:

SELECT * FROM sys.sysprocesses WHERE spid = 58
我什么也得不到! 这怎么可能

我正在使用SQLServer2008R2

试试这个

SELECT db.name                  DBName,
       tl.request_session_id,
       wt.blocking_session_id,
       OBJECT_NAME(p.OBJECT_ID) BlockedObjectName,
       tl.resource_type,
       h1.TEXT                  AS RequestingText,
       h2.TEXT                  AS BlockingTest,
       tl.request_mode
FROM   sys.dm_tran_locks AS tl
       INNER JOIN sys.databases db
               ON db.database_id = tl.resource_database_id
       INNER JOIN sys.dm_os_waiting_tasks AS wt
               ON tl.lock_owner_address = wt.resource_address
       INNER JOIN sys.partitions AS p
               ON p.hobt_id = tl.resource_associated_entity_id
       INNER JOIN sys.dm_exec_connections ec1
               ON ec1.session_id = tl.request_session_id
       INNER JOIN sys.dm_exec_connections ec2
               ON ec2.session_id = wt.blocking_session_id
       CROSS APPLY sys.dm_exec_sql_text(ec1.most_recent_sql_handle) AS h1
       CROSS APPLY sys.dm_exec_sql_text(ec2.most_recent_sql_handle) AS h2
这将为您提供阻止会话的列表

使用此命令终止会话

Kill sessionid
试一试:

EXECUTE sp_who2 GO

您可能需要获得一些更高的权限,或者让您的平台团队运行它,因为它是一个系统存储过程

请尝试使用EXEC sp_who2 GONo“58”…Plz共享表结构。这是一个包含大约50个表的数据模型。什么样的信息对你有帮助?上面的问题只涉及系统表。