2016-10-25 3 views
0

2つのトランザクションがあります.1つはREAD_COMMITTED、もう1つはREAD_UNCOMMITTEDです。 READ_COMMITTEDトランザクションではロック例外が発生します。この例外は、他のREAD_UNCOMMITTEDトランザクションがREAD_COMMITTEDが取得しようとしているレコードを変更した場合に発生します。私のREAD_UNCOMMITTEDトランザクションにはもう少し時間がかかります。隔離戦略に従って、READ_UNCOMMITTEDはロックを取得せず、READ_COMMITTEDはロックを取得しません。READ_UNCOMMITTEDトランザクションと同時に動作する場合のREAD_COMMITTEDロック戦略は何ですか

私の質問はREAD_COMMITTEDはここ

  1. 何のロック戦略に従うんです。
  2. READ_UNCOMMITTEDトランザクションからコミットされていないレコードのロックを取得しますか?または前の取引からのコミットされた記録に基づいて行われます。
+0

私たちはinformixを使用しています – krisp

+0

あなたの質問を理解するためにもう少し情報が必要です。 'Informix'のどのバージョンを使用していますか?あなたの2つのトランザクションがしようとしているもののダミーのテーブルを使って簡単な例を提供できますか? –

答えて

0

読み取りコミット済みトランザクションを持つセッションは、SQL Serverの読み取りが終了するとすぐに共有ロックが解放され、この共有ロックが解放されます。コミットされていないトランザクションを読み取っている別のセッションが同じレコードを同時に更新しようとしている場合、共有ロックが解放されない限り、非常に短い時間間隔でブロックされます。

読み取りコミットされていないトランザクションは、コミットされていないレコードであり共有ロックを発行しないダーティレコードを読み取ります。しかしトランザクションは引き続き排他ロックを発行します。

関連する問題