コンピュータを中心ですが、日常のこともいっぱい取り混ぜていきます。 なお自分のメモみたいなものなので、文句は受け付けないですよ~。自己責任でお願いします。 ADO.NETで自動トランザクションを使って開発するとデフォルトで、トランザクション分離レベルが'Serializable'となります。 なので、 以下の左のような、タスクごとに一番最後に報告した勤務時間のユーザIDを取得するというSQLを実行した場合、トランザクションを閉じるまで、右のような過去の実績報告を追加するということができません(追加だけでなく、勤務時間表のすべての更新作業(追加、更新、削除)ができないはずです)。 これは、Serializableの動きのためです。 この時点のロック状況は、こんな感じ。 Serializableの特徴であるファントム回避のためキーをレンジでロックしています。 報告日時で適切なインデックスがない