锁定在SQL Server中

锁定是每个SQL Server数据库的一部分。这是一个关键的功能,没有它,我们无法在同一数据库中使用多个人,同时。它确保数据完整性,但也可能导致一些错误。

例子:

我协助发现他们的动态GP系统的客户经常被锁定。他们不确定为什么,所以我必须做一点调查。

首先,我想知道SQL中的哪个表有一个锁,所以我运行了以下脚本:

  SELECT * FROM sys.dm_tran_locks

  WHERE resource_database_id = DB_ID()

  AND resource_associated_entity_id = OBJECT_ID(N'dbo.TABLE NAME');

接下来,我想知道该表上的锁定了哪个“所有者”。所以我这样做了:

SP_WHO2 and match the spid with the request_session_id

我发现它是一个划线锁定表的抄写集成。事实证明,整合持续了太长,超过4小时。

我必须使用以下命令删除锁:

KILL with the number in of the above query request_session_id

最后,我调整了整合,所以花了更少的时间。

这些SQL命令可用于使用SQL Server的任何程序。很多次我看到锁定批量,发票和销售订单发生。此外,有时如果人们没有注销,那可能导致锁定问题。

如果您需要进一步的帮助,请发送电子邮件给我们 [email protected]

发表评论