I am struggling with deadlocks that should not even be, as I am running bulk delete and inserts on mutually exclusive subsets of a table.
Yet deadlocks seem unavoidable when running the queries on multiple threads (each of which accessing data that could be on separate partitions).
See also this question for more details on the issue, but I am wondering more generally speaking if partitioning is recommended to deal with deadlocks.
IMHO partioning would not solve anything. The chain of events for a deadlock situation is basically:
Deadlock occurs if T1 and t2 are both halfway, each owning one lock.
Nothing will change if the L1 and L2 locks refer to objects in different tables; it is only the ordering of events that causes the deadlock.