加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 来自不同进程中相同临时表的锁的死锁

发布时间:2021-01-10 22:17:59 所属栏目:MsSql教程 来源:网络整理
导读:我发现了一个似乎显示出我认为不可能的事情的僵局.死锁涉及两个进程: 1. process8cf948 SPID 63 在临时表#PB_Cost_Excp_Process_Invoices_Work上执行ALTER TABLE. 拥有表上的IX锁#BB_Cost_Excp_Process_Invoices_Work,对象ID为455743580 2. process4cb3708 S

临时表在每个存储过程结束时被删除.它们是使用模式创建#table,修改模式,插入,更新,选择,然后删除.使用此temp #table的公共过程有多个入口点,因此我们有一个中央过程来设置调用公共过程所需的列.否则,我们必须在所有入口点procs中复制相同的#table定义.

从多个客户端应用程序经常调用该进程.一些客户端应用程序从多个线程调用此进程.其他人一次运行一个.想想库存/会计软件,其中家庭办公室并行处理数千个商店的数据,而商店也自己运行相同的过程.因此,如果在启用锁定分区时这是一个罕见的问题,那么在我们较大的客户数据库中这种情况就不会那么罕见了.

更新3 – 2012-12-19

另一个客户在SQL Server 2012 build 11.0.2100上遇到了同样的问题.我没有在累积更新说明中看到任何针对此问题的修复程序.研究.

更新4 – 2013-02-13

Microsoft已在以下更新中发布了此错误的修复程序:

> Cumulative Update Package 4 for SQL Server 2008 R2 SP2
> Cumulative Update Package 2 for SQL Server 2012 SP1

解决方法

这个确切的问题刚刚在 Deadlocks occur when you execute a stored procedure to alter a temporary table if lock partitioning is enabled in SQL Server 2008 R2宣布.它与 Cumulative update package 4 for SQL Server 2008 R2 SP2相关联.

它最终得到了阅读SQL Server修复说明的回报.

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读