Does the CRM database and application support the SNAPSHOT isolation level?

This is a very interesting question that for some reason has not been documented in the Official CRM documentation.

 

To give a short reply: YES, IT IS SUPPORTED

 

The longer reply is:

The default isolation level of a SQL Server database is READ COMMITTED:

SQL Server Customer Advisory Team Blog - Concurrency Series: Basics of Transaction Isolation Levels

But this isolation level will cause blocking between some CRM processes and deadlocks in some cases (e.g. when processes try to SELECT data and UPDATE data at the same table).

So what the CRM Support team usually suggests in some of these issues is to enable the SNAPSHOT isolation level for the CRM database.

 

More details about the Pros/Cons of this isolation level and how to enable it can be found in this blog post from Ritesh Ranjan:

https://blogs.msdn.com/b/ritesh_ranjan/archive/2014/09/12/sql-read-committed-snapshot-isolation-and-dynamics-crm.aspx