都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、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

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