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