С учетом следующего запроса:
SELECT * FROM USER WHERE user_id in (10,20,30,40,50) FOR UPDATE
Как Oracle собирается заблокировать все эти строки? Будет ли он блокировать их одну за другой (во время сканирования индекса) ИЛИ Oracle каким-то образом заблокирует их все одновременно?
Что если вторая транзакция одновременно запускает следующий запрос:
SELECT * FROM USER WHERE user_id = 50 FOR UPDATE
Возможно, вторая транзакция МОЖЕТ получить блокировку для этой записи только потому, что первая транзакция еще не получила блокировку для этой конкретной записи (из-за последовательной блокировки строки по одной)?
Заранее спасибо,