There are a couple of things I would do before killing a process.
1. Run sp_lock [spid] for each spid to see what is object(s) are causing the deadlock and the types of locks. You will see a wait for the blocked spid.
2. Run DBCC InputBuffer([spid]) for each spid involved to find the statements that are causing the deadlock.
Once you find this you can then determine if indexing may help (possibly reduce the type of lock from table to page/row), refactor the code in the offending statements to access tables in the same order, and determine there are long-running transactions that can be broken down in to smaller transactions.
Jack Corbett
Consultant - Straight Path Solutions
Check out these links on how to get faster and more accurate answers:
Forum Etiquette: How to post data/code on a forum to get the best help
Need an Answer? Actually, No ... You Need a Question