都内で働くSEの技術的なひとりごと

都内でサラリーマンやってます。マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。よろしくお願いします♪

SNAPSHOT トランザクションと RCSI トランザクションの違いについて実験してみる2

 ここの実験に少し付け加えの実験。

クエリ①

/*[1]*/ BEGIN TRANSACTION
/*[2]*/ UPDATE [Person].[AddressType] SET NAME = 'Billing2' WHERE AddressTypeID = 1
/*[3]*/ COMMIT TRAN

クエリ②

/*[1]*/ SET TRANSACTION ISOLATION LEVEL SNAPSHOT
/*[2]*/ BEGIN TRANSACTION
/*[3]*/ SELECT * FROM [Person].[AddressType] WHERE AddressTypeID = 1
/*[4]*/ SELECT * FROM [Person].[AddressType] WITH(NOLOCK) WHERE AddressTypeID = 1
/*[5]*/ COMMIT TRAN
/*[6]*/ SELECT * FROM [Person].[AddressType] WHERE AddressTypeID = 1
  1. クエリ① - [1]
  2. クエリ② - [1]
  3. クエリ① - [2]
  4. クエリ② - [2],[3]:実行結果は下記の通りです。クエリ① - [2] は反映されていません。

    f:id:koogucc11:20131007234124j:plain

  5. クエリ① - [3]
  6. クエリ② - [4]:実行結果は下記の通りです。クエリ① - [2] は反映されています。f:id:koogucc11:20131007233421j:plain
  7. クエリ② - [5]
  8. クエリ② - [6]:実行結果は下記の通りです。クエリ① - [2] は反映されています。f:id:koogucc11:20131007233421j:plain

ちょっと個人的に気になったので実験しました。