MW211 EXIT

devlog
MSSQL/INSERT FROM SELECTの排他
2015年03月29日
「INSERT FROM SELECT」中は、更新側および参照側の排他状態は
どのようになっているのか?
確かめてみた。

  (1) 非トランザクション下での挙動
    (1-1) 実行中時
            更新側:排他ロック
            参照側:共有ロック

  (2) トランザクション下での挙動
    (2-1) 実行中時
            更新側:排他ロック
            参照側:共有ロック
    (2-2) 実行後コミット前
            更新側:排他ロック
            参照側:ロックなし

参照側は読込の為、共有ロックがかかるが
それはトランザクションの有無に関わらず実行中の間のみ。

気になっていたのが、トランザクション完了待ちで
更新側が排他ロックから抜け出せなかった場合(2-2)
参照側はどうなるのかという点。
こちらは、用が済んだので共有ロックは解除されるのだ。
分類:MSSQL