SQL 2008表已锁定 - 无法解决原因

时间:2010-04-15 11:34:25

标签: sql sql-server-2008

我在一台SQL 2008服务器上有两个数据库。数据库1似乎导致数据库2上的表的锁定。数据库1上没有运行应该影响数据库2的查询。

这是正常行为吗?

使用此命令查看正在运行的查询时

SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time/1000 [seconds]
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext

它告诉了我,并说数据库2上的命令被暂停。

我有点失落。我应该看一下什么样的东西来解决为什么数据库2中的表被锁定了?

1 个答案:

答案 0 :(得分:1)

运行的查询无关紧要 - 锁可以来自DID运行且连接/事务仍然有效的查询(即打开事务,未提交/回滚),在这种情况下锁定保持不变。

你基本上必须要明白:

  • 锁定表格的连接。
  • 命令链在连接中运行。

锁定源自数据库所执行的操作 - 因此,除非您遇到低级别的严重错误(非常不可能出现类似错误),否则会导致锁定生成。