Kim Tripp (one of the programmers of SQL Server and a integral part of SQLSkills) goes through exactly what you stated in the MCM videos on Snapshot Isolation. Fast fwd to 41:45 in the video to get to the part where she answers your question.
If you use
ALLOW_SNAPSHOT_ISOLATION
make sure you use SET TRANSACTION ISOLATION LEVEL SNAPSHOT
in your code, otherwise you will not get any of the benefits.
If you set
SET READ_COMMITTED_SNAPSHOT ON
, then there is no need to modify any code. MS SQL Server automatically applies snapshot isolation for that table.
I haven't tested to see what happens if you ask for a different isolation level in your code, I suspect it will overwrite this option but test it first.
Good article on how snapshot isolation can change the expected behavior of your app. It shows examples of how a update statement and a select statement might return totally different and unexpected results.
No comments:
Post a Comment