首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server2008 R2中的死锁

SQL Server2008 R2中的死锁
EN

Stack Overflow用户
提问于 2011-08-13 00:10:05
回答 1查看 854关注 0票数 1

服务器: SQL Server 2008R2客户端: Excel/ADO -8客户端服务器硬件:8核/16 OS内存/操作系统:WinServer 2008SR2

在Insert/Update和Merge/Matched存储过程上发生死锁。

我已经在这里读到了很多关于插入/更新的内容,因此,我已经将插入/更新更改为合并/匹配,但我仍然频繁地收到死锁错误(大约每10分钟一次),这些错误只有8个客户端以每分钟2个的速度运行在批处理模式下,请求更新。

相比之下,每个客户端每分钟向另一个表插入大约20,000个项目,没有任何问题。

我希望得到一些帮助来解决这些死锁问题,因为我不认为如此微不足道的8个客户端(特别是Excel/ADO/VBA)应该能够给这个数据库带来压力!

还要注意,我不会直接通过客户端发出任何SQL命令,所有sql命令都是通过存储过程调用的。

我当前的SP:

代码语言:javascript
复制
merge [dbo].[File_Level_Data] as TargetMerge
    using(select @Name_of_File as name)as source
    on (TargetMerge.Name_of_File = source.name)

when matched then
    update
    set
    XXX1  = @XXX1, 
    ZZZ25 = @ZZZ25
when not matched then
    insert
    (XXX1,
    ZZZ25
    ) values 
    (
    @XXX1,
    @ZZZ25

);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-13 04:54:00

我的死锁是由我几年前放在那里的触发器引起的,但我不相信它们还在那里。一旦我删除了它们,就不会再有死锁。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7043047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档