Reading the Deadlock Graph
It's important to be able to analyze the deadlock graph once it's been detected. I'm going to give a brief run down on what I look at.
The process nodes show information regarding the actual modification. The node that is X'd out is known as the deadlock victim. This is the process that was killed as part of the deadlock solution.
Each process node shares the SPID, the deadlock priority (ranges from LOW: -5, Normal: 0, and High: 5), Log Use (the space the process uses in the transaction log). For more information on the rest of the properties of the process node, please check out Microsoft's documentation here.
Also, if you hover the mouse over the Process Node, it will display a tool tip or input buffer. In this case it's the actual T-SQL Code.
The Resource nodes show the resources or objects involved in the deadlocks. The "object name" property will show the table involved. The index name show's which index was being used.
The arrows going to and from the resource are known as Request and Owner Edge. You can see which lock modes were being requested on the objects. I will cover lock modes and isolation types in another post. In the mean time for more in depth look at lock modes go here.
Now while the graph is useful, the full on XML description of this graph has even more useful information. And I will cover that in a later post.