• The first thing I noticed is that the Isolation Level is serializable which will cut down on your concurrency quite a bit. I'd be looking into the reason for using Serializable. Based on the deadlock graph both queries are getting S locks and requesting IX locks. The IX lock is incompatible with the S lock so holding the shared locks is what seems to be causing the deadlocking. Without seeing the query I'm guessing there is a SELECT followed by the INSERT and using Serializable is causing the S locks to be held. Just a guess though.