OracleとSQLServerのロック2

Oracle  
→別トランザクションの更新中データに対して、変更前のデータを読み取ることができる。optimistic(楽観的同時実行制御)
 MVCCと呼ばれる同時実行性向上の仕組みのため

 

SQL Server
→デフォルトでは更新中のデータはロックがかかるためアクセスできない pessimistic(悲観的同時実行制御)


 READ_COMMITTED_SNAPSHOTオプションで上記と同じ動きができる
 -SQL Server はデフォルトOFF
 -Azure SQL はデフォルトON


READ_COMMITTED_SNAPSHOTを有効にした場合のデメリット
-データをバージョン管理するため TEMPDB に更新前の断面が格納される
 →その分負荷があがるので注意