var date = new Date('Sat, 19 Jan 2019 05:40:07 GMT');
var result=date.getUTCHours()+':'+date.getUTCMinutes()+':'+date.getUTCSeconds();
Партии для покрытия здесь! Человек в Вашей компании чрезвычайно прав, за исключением того, что изменения записаны в блок данных в памяти, поскольку они сделаны, даже перед фиксацией; и они выписаны к диску полностью независимо от того, когда Вы фиксируете (возможно прежде, возможно после, никогда как часть операции фиксации).
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) Блоки данных в памяти будут отмечены, как фиксируется или когда они будут выписаны к диску фоновым процессом, или в следующий раз, когда они используются (ВЫБОРОМ или любой другой операцией). Это - то, что обсуждает примечание AskTom. Это не о том, записаны ли Ваши изменения в данных в блок; это о том, отмечены ли они, как фиксируется в самом блоке.
Я также голосую за вторую версию на основе
эта ссылка (который является Oracle 10.2, но я думаю, она все еще относится 9.2 также).
Это говорит: "После того, как транзакция фиксируется, данные отмены больше не необходимы в целях отката или восстановления транзакции. Однако в последовательных целях чтения, продолжительные запросы могут запросить эту старую информацию отмены для создания более старых изображений блоков данных".
и
"Когда автоматическое управление отменой включено, всегда существует текущий период хранения отмены, который является минимальным количеством времени, когда База данных Oracle пытается сохранить старую информацию об отмене прежде, чем перезаписать его".
Мое понимание (в основном) позже, Эта ссылка имеет детали.
Блоки данных не должны быть записаны, просто обновлены в буфере, они могут или не могут быть выписаны к диску. Восстановление должно быть записано в диск, прежде чем фиксация сможет продолжиться все же.