February 7, 2008 at 12:00 pm
Some of my customers are trying to do some ad hoc reports against live data. Some of the queries may take some time so it will hold up the online system. So I try to do data mirroring with snapshot, so those queries can run in that database.
I read something about read committed using row versioning, it seems allowing me to query against the online database without affecting the online transaction.
It does not lock the data but then what is the different from SELECT ... WITH (NOLOCK)? I don't want dirty data.
Also it allows update and delete too. I am kind of confused of what it supposes to do.
Does someone use this before?
February 7, 2008 at 10:32 pm
WITH NOLOCK is equivalent to READ_UNCOMMITTED. READ COMMITTED with ROW VERSION (or otherwise READ_COMMITTED_SNAPSHOT) allows the data to be read from the earlier versions of rows stored in the tempdb version store.
February 8, 2008 at 4:05 am
If Rowversioning is used read operations will not take Shared locks on the data and hence will not block other operations.
How ever you will be able to read the last commited version of the row when your transaction starts.
BOL has good info abt this . Go through BOL before implementing Rowversioning.
"Keep Trying"
Viewing 3 posts - 1 through 2 (of 2 total)
You must be logged in to reply to this topic. Login to reply