Чтобы в следующий раз опять долго не искать, продублирую и здесь полезное обсуждение:
andrey_anonymous:
При выполнении select for update OF критерием инициирования Statement rollback будет изменение значения любого поля, упомянутого в:
Т.е. update OF можно либо осознанно применять для провоцирования statement rollback в своих корыстных интересах либо неосознанно применить в соответствии с докой, случайно спровоцировав лишний рестарт.
- select list
- where clause
- update OF [column_list]
А рестарт - это довольно затратная затея, особенно на крупных/сложных выборках.
for update of: получается так что, если изменилось поле, не попадающее в 3 перечисленные условия, то рестарта не будет а выборка будет считаться согласованной, несмотря на значение scn?
andrey_anonymous: Именно так, см. "эскперимент1". Скажу больше - если новое значение поля будет совпадать со старым, то рестарта тоже не будет, даже если измененное поле упомянуто в запросе.
Comments
Отправить комментарий