将了解在由于多个插入语句而导致具有1个聚集索引和1个非聚集索引的表中发生死锁的情况。
解决方案很奇怪,其中ignoreDuplicateKey
设置为False,从而解决了该问题。这是TRUE
的错误,当它为真时会发生死锁。我读了很多有关索引和锁定的信息,插入可能会导致锁定,但是此属性如何解决问题呢?
场景-1个表,使用Spring批处理(5个多个分区)尝试并行插入5个线程,提交间隔为1000。 2个索引-1个主键唯一聚集索引,1个非聚集唯一索引(带有IgnoreDuplicateKey=True
)。
桌上没有触发器。
由于死锁,在40000个中,〜150个插入失败。死锁失败的数量随着数量的增加而增加。