我有一个场景,我必须使用SQL Server存储过程更新表中的多行。
我正在使用线程来快速进行更新(C#console application + ADO.NET)。
每个线程都会更新该表中的不同行集。
我很好奇它会导致SQL中的任何死锁吗?
更多详情:
我有独立的线程,他们不共享任何公共资源。我更担心SQL锁定机制,因为多个线程调用相同的存储过程来更新相同的表但不同的记录集(不同的行)。
答案 0 :(得分:2)
它不应该导致任何死锁(只要没有奇怪和复杂的约束)。
当您使用像快照这样的大量TransIsolation时,它可能会导致线程必须等待彼此的延迟。但是使用默认的ReadCommitted,你应该没问题。
答案 1 :(得分:0)
如果你没有正确处理它们,线程可能会陷入僵局。 如果你想要安全。只需使用
Monitor Class
这将限制并锁定您当前的线程。
答案 2 :(得分:0)
如果您在桌子上没有任何相关索引,那么您可能会遇到麻烦。
除此之外,你应该没事。