SQL SERVER RCSI (Read committed Snapshot isolation)

RCSI (Read committed Snapshot isolation) was the greatest feature that was introduce in SQL Server 2005 and available in later version. Oracle Database is having this feature for long time.


DBA who support SQL SERVER Database, really need this feature that deal with Deadlock/ blocking in multi-user Database. Now a days PeopleSoft deliver script to enable it when you install new tools with SQL Server Database but DBA can enable it if they are supporting their custom built database

My Recommendations:

1. When DBA enable this option in SQL SERVER database, then he/ she must consider temp database size as it grow much fast because all version are stored in Temp database. It always better to have multiple temp data file correspondence with CPU count and place on RAID 1 on SAN.
2. Use Single user mode to enable this feature.
3. This feature is very useful in multi user environment.



“Read committed isolation using row versioning provides statement-level read consistency. As each statement within the transaction executes, a new data snapshot is taken and remains consistent for each statement until the statement finishes execution. Enable read committed isolation using row versioning when:
·         Reader/writer blocking occurs to the point that concurrency benefits outweigh increased overhead of creating and managing row versions.
·         An application requires absolute accuracy for long-running aggregations or queries where data values must be consistent to the point in time that a query starts.”

To enable (RCSI) on a database, one needs to execute the following command:

ALTER DATABASE <db_name> SET READ_COMMITTED_SNAPSHOT ON

If you query the is_read_committed_snapshot_on column of the sys.databases catalog view on the server, you will see the value 1 (which means “ON”).


SELECT name, is_read_committed_snapshot_on FROM  sys.databases