Menurut MSDN:
http://msdn.microsoft.com/en-us/library/ms191242.aspx
Ketika opsi database READ COMMITTED SNAPSHOT atau ALLOW SNAPSHOT ISOLATION AKTIF, salinan logis (versi) dipertahankan untuk semua modifikasi data yang dilakukan di database. Setiap kali sebuah baris dimodifikasi oleh transaksi tertentu, instance dari Mesin Basis Data menyimpan versi citra yang sebelumnya dikomit dari baris dalam tempdb. Setiap versi ditandai dengan nomor urut transaksi dari transaksi yang dilakukan perubahan. Versi baris yang dimodifikasi dirantai menggunakan daftar tautan. Nilai baris terbaru selalu disimpan dalam database saat ini dan dirantai ke baris berversi yang disimpan di tempdb.
Untuk transaksi yang berjalan singkat, keengganan dari baris yang dimodifikasi dapat di-cache di buffer pool tanpa harus ditulis ke dalam file disk dari database tempdb. Jika kebutuhan untuk baris berversi berumur pendek, itu hanya akan dikeluarkan dari kumpulan buffer dan mungkin tidak memerlukan overhead I/O.
Tampaknya ada sedikit penalti kinerja untuk overhead tambahan, tetapi mungkin dapat diabaikan. Kita harus menguji untuk memastikan.
Coba atur opsi ini dan HAPUS semua NOLOCK dari kueri kode kecuali benar-benar diperlukan. NOLOCKs atau menggunakan metode global dalam penangan konteks database untuk memerangi tingkat isolasi transaksi database adalah Band-Aids untuk masalah tersebut. NOLOCKS akan menutupi masalah mendasar dengan lapisan data kami dan mungkin mengarah pada pemilihan data yang tidak dapat diandalkan, di mana pemilihan otomatis / pembaruan versi baris tampaknya menjadi solusinya.
ALTER Database [StackOverflow.Beta] SET READ_COMMITTED_SNAPSHOT ON