質問

このテーブルで定義されるスクリプト[1]、スクリプトの実行を2windowsのSSMS

--1) first in first SSMS window
set transaction isolation level READ UNCOMMITTED;
begin transaction;
update aaa set Name ='bbb' 
    where id=1;
-- results in "(1 row(s) affected)"
--rollback

後1)

--2)after launching 1)
select * from aaa --deleted comments
where id<>1
--is blocked

に、独立したトランザクション遮断レベル1)ウィンドウでは、選択2)されます。
なぜですか?

は分離レベルアップデートしてい合計その他の取引?

最高の分離レベルがデフォルトの読み安全保障理事会に対して、2).
な範囲のロックに帰を選択してから進を読み込み(NONREPEATABLEを読み込み)、ファントム読み込み(繰り返し読み込みの問題[2]
かな?

どのように更新するブロックしないを選択?

[1]

CREATE TABLE aaa
(
    Id int IDENTITY(1,1) NOT NULL,
    Name  varchar(13) NOT NULL
)


insert into  aaa(Name) 
   select '111' union all 
   select '222' union all 
   select '333' union all 
   select '444' union all 
   select '555' union all 
   select '666' union all 
   select '777' union all 
   select '888'  

[2]
コピー&ペーストまたは末尾に追加)をクリック
http://en.wikipedia.org/wiki/Isolation_(database_systems)

更新:
選択(NOLOCKいないッ...

Update2:
また、同じ読み未確定の

この更新が異なるかを選択します。
でも場合には、この行動に反する記述の分離レベル[2]

のポイントする:

  • いまを知ることはできない人もかから選択しない(更新-d)テーブルも無関係の更新を行
  • 解離のレベル[2]

SQL Server2008R2Dev

役に立ちましたか?

解決

私はあなたがそれ故にSELECTを遮断、エスカレートされたロックが生じていると思うの主キーを持っていないからだと信じています。 。無WITH(NOLOCK)ヒント必要な

- あなたがID列にPRIMARY KEYを追加した場合、あなたはもう一度試している場合、SELECTは現在、他の3行が返されることがわかります

他のヒント

繰り返し試験後

--3)
create index IX_aaa_ID on aaa(id)

選択2"をご覧くださ遮断

--4)
drop index IX_aaa_ID on aaa
create unique index IX_aaa_ID on aaa(id)
--or adding primary key constraint   

選択2)が塞がれていない

場合は変更2)

--2b)
select * from aaa 
    where id=3 
    --or as
    --WHERE id=2 

こ2b)が塞がれていないものがない場合にインデックスまたはPKです。

も2b)、指数は、遮断後の修正1)更新の走行下での直列化可能 できない繰り返し読み込みまたは下

--1c)  
set transaction isolation level serializable;
--set transaction isolation level REPEATABLE READ;

begin transaction;
update aaa set Name ='bbb' 
    where id=1;
--rollback

それでね、複数行選択の取得を試みは非共有可能なロック?

更新:
もに、すべてのケースにおいて選されたブロックされることがでの取得を待機中のLCK_M_IS
そのuderstand本料理

Update2:
で更新されないロックでエスカレートのテーブルで選択(共有)ロック時に選択し読み込もうとし複数行)のエスカレートテーブルにロック付与できないのでテーブルは専用(更新)ロックになっています。

有指数は無関係にとっての質問

私の議論はこの私の提案 "趣旨rowlocksすべきでないエスカレートテーブルにロックさがすでに含まれている排他ロック"

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top