Hello All,

Since I seem to be discussing this all the time, I thought I would put it in writing for everybody.  When dealing with SharePoint and Deadlocks there is little we can do to directly change the behavior since we are very limited in what can be done to the databases, the Product Group does work to eliminate as many deadlock scenarios as possible but they expect to have deadlocks still due to the nature of how the databases are designed.

In this article I have focused on SharePoint 2010, but I would apply the same rules to any version of SharePoint.

So what can you do to eliminate as many deadlocks as possible?  Here are a few things you can do:

  1. Run database maintenance as often as possible, the healthier the database files are the better they will run. (See http://technet.microsoft.com/en-us/library/cc262731(v=office.14).aspx )

  2. Insure that your SQL servers have the resources they need, monitor the servers to insure they have RAM, CPU and disks all performing well.  Again the healthier SQL is the better off SharePoint will be.

  3. Reduce the number of jobs running against your SQL databases, this means minimize crawls,  profile imports, even consider looking at timer jobs to see which ones can run less often.

  4. Reduce number of Web Applications, this will reduce the number of timer jobs that have to run.

  5. Do not perform bulk operations against your content databases, educate users to delete in small batches and upload in small batches.  Educating users in general is a great idea.

  6. Consider implementing Records Management, this means deleting old data you should not be keeping and archiving data that you need to keep but don’t use.

  7. Follow best practices when it comes to list size, config of views, database size, number of databases, depth of sites and site collections.  The size of queries due to views returning large number of results can cause deadlocks.

     

What symptoms should cause me to be concerned about Deadlocks?  Look for the following to occur at the same time as the deadlock:

  1. Opening a list takes a long time

  2. Queries against a list take a long time

  3. Opening a site takes a long time

As you can see the issues will surround around performance issues that your user base can notice.

 

Articles:

Database maintenance for SharePoint 2010 Products

http://technet.microsoft.com/en-us/library/cc262731(v=office.14).aspx

Designing large lists and maximizing list performance (SharePoint Server 2010)

http://technet.microsoft.com/en-us/library/cc262813(v=office.14).aspx

Estimate performance and capacity requirements for large scale document repositories in SharePoint Server 2010

http://technet.microsoft.com/en-us/library/hh395916(v=office.14).aspx

Performance and capacity management (SharePoint Server 2010)

http://technet.microsoft.com/en-us/library/cc262971(v=office.14).aspx

Troubleshooting SQL Server deadlocks and performance when running SharePoint

http://blogs.msdn.com/b/grahamk/archive/2009/06/15/troubleshooting-sql-server-deadlocks-and-performance-when-running-sharepoint.aspx

Best practices (SharePoint Server 2010)

http://technet.microsoft.com/en-us/library/cc850682(v=office.14).aspx

SharePoint lists V: Techniques for managing large lists (Online course)

http://office.microsoft.com/en-us/sharepoint-server-help/sharepoint-lists-v-techniques-for-managing-large-lists-RZ101874361.aspx