1

意外地,相同的存储过程在我们的 MS SQL Server 2008 R2 上一次运行了两次。它们是从同一个 SQL Server Management Studio 客户端运行的,我试图取消它们。45 分钟后,两个进程都没有取消。我在某处读到这将有助于关闭 SSMS 中的查询窗口,所以我这样做了。然而,即使已经过去了将近 20 个小时,存储过程应写入的表仍处于锁定状态。我想有一个僵局。我在存储过程启动后几秒钟点击了取消。

存储过程正在读取的表未锁定。存储过程在 CLR 中。它从表中读取数据,操作数据,然后使用 SqlBulkCopy 插入到其他三个表中。

SP 写入的表中的数据可以很容易地重新创建。但是,由于锁定,我既不能删除也不能截断它们。我也试过 KILL SPID 没有结果。

我一直在考虑重新启动服务器,但我想这不会有帮助,因为 SQL Server 的数据完整性。

我真的很想了解如何释放锁。几个拥有大量用户的网站依赖于数据库服务器,因此非常感谢不涉及重新启动的解决方案。

4

0 回答 0