锁定是每个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]