微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TSQL - 解决死锁

如何解决TSQL - 解决死锁

我有一个随机挂断的 sql Server 代理作业(执行一个存储过程)。

这次在进程被终止之前,我运行了 sp_who2 并注意到多个具有相同 SPID 的记录(1 = 正在运行,所有其他 = 暂停)。这是由于并行性。但是这个过程比平时花费的时间要长得多。 cpu时间相当大。进程被终止了,但我觉得有一个死锁问题(相信这是最后一次调查的原因)。查询是这样的:

INSERT INTO trg.TargetTable WITH (TABLOCKX,HOLDLOCK)
            (Col1,Col2,Col3...  )
    SELECT Col1,Col3,...
    FROM src.sourceTable1
    JOIN src.sourcetable2 ON ...   
    OPTION (RECOMPILE);

这是否会导致死锁(并行运行的 tablock/holdlock)?如果是这样,为什么它会随机发生?是否仅在进程并行时?还有,我该如何解决

更新:这是我从 sp_who2输出中看到的

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。