Според MSDN:
http://msdn.microsoft.com/en-us/library/ms191242.aspx
Когато опциите READ COMMITTED SNAPSHOT или ALOW SAPSHOT ISOLATION са ВКЛЮЧЕНИ, логическите копия (версии) се поддържат за всички модификации на данни, извършени в базата данни. Всеки път, когато ред се модифицира от конкретна транзакция, екземплярът на Database Engine съхранява версия на предварително записаното изображение на реда в tempdb. Всяка версия е маркирана с поредния номер на транзакцията, която е направила промяната. Версиите на модифицираните редове са свързани във верига с помощта на списък с връзки. Най-новата стойност на ред винаги се съхранява в текущата база данни и е свързана с версиите на редовете, съхранявани в tempdb.
За краткосрочни транзакции, отвращението на модифициран ред може да се кешира в буферния пул, без да бъде записано в дисковите файлове на базата данни tempdb. Ако необходимостта от реда с версии е краткотрайна, той просто ще бъде изхвърлен от буферния пул и може да не е непременно натоварен I/O.
Изглежда, че има леко намаление на производителността за допълнителните режийни разходи, но може да е незначително. Трябва да тестваме, за да сме сигурни.
Опитайте да зададете тази опция и ОТХОДИТЕ всички NOLOCK от кодови заявки, освен ако не е наистина необходимо. NOLOCK или използването на глобални методи в манипулатора на контекста на базата данни за борба с нивата на изолация на транзакциите в базата данни са ленти за проблема. NOLOCKS ще маскира фундаментални проблеми с нашия слой данни и вероятно ще доведе до избиране на ненадеждни данни, където автоматичното избор/актуализиране на версиите на реда изглежда е решението.
ALTER Database [StackOverflow.Beta] SET READ_COMMITTED_SNAPSHOT ON