Много, чтобы покрыть здесь! Сотрудник вашей компании, по сути, прав, за исключением того, что изменения записываются в блок данных в памяти по мере их внесения даже до фиксации; и они записываются на диск полностью независимо от того, когда вы фиксируете (возможно, до, возможно, после, никогда как часть операции фиксации).
1) UNDO_RETENTION не имеет ничего общего с тем, когда ваши изменения записываются в блок данных, либо в памяти, либо на диске. UNDO_RETENTION контролирует, как долго сохраняются данные, необходимые для отмены вашего изменения, ПОСЛЕ того, как вы передадите изменение. Цель состоит в том, чтобы другие запросы или сериализуемые транзакции, запущенные до вашей фиксации, могли по-прежнему запрашивать эти данные. Справка: http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/undo.htm#sthref1477
2) При обновлении блоки данных в памяти изменяются. Они могут записываться или не записываться на диск (я полагаю, даже до того, как вы совершите коммит); это делается фоновым процессом. Также информация повторов записывается в буфер журналов повторов. Отмена генерируется и сохраняется в сегменте отмены.
3) Когда вы фиксируете, Oracle проверяет, что ваша информация о восстановлении записана на диск, и помечает данные отмены как зафиксированные. Но он не записывает измененные блоки данных в памяти на диск и не возвращает назад и не отмечает каждый блок как зафиксированный. Это сделано для того, чтобы сделать коммит как можно быстрее. Справка: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/transact.htm#sthref628
4) Блоки данных в памяти будут помечены как зафиксированные, когда они будут записаны на диск фоновым процессом, или в следующий раз, когда они используются (с помощью SELECT или любой другой операции). Это то, что обсуждается в записке AskTom. Это не о том, записаны ли ваши изменения данных в блок; речь идет о том, помечены ли они как зафиксированные в самом блоке.