The best way to solve the deadlock problem is to set "print lock information" when using
sp_configure "print lock information", 1
Each time there is a dead end, it will print information about what processes were involved and what they performed during a deadlock.
If your tables use all page locking. It can reduce locks to switch to datarows or datapages locks. If you do, be sure to collect new table statistics and recreate indexes, views, stored procedures, and triggers that refer to tables that have changed. If you do not, you will either receive errors or you will not see all the benefits of the change, depending on which ones are not recreated.
Todd pierce
source share