Дополнительный объем данных отмены и повторного выполнения - это еще не обязательно самая большая проблема - в конечном итоге, дополнительно генерируемые и буферизуемые данные зачастую не так уж велики по сравнению с базовыми накладными расходами. Более того, поскольку архитектура сервера Oracle такова, что записи на диск, по возможности, выполняются фоновыми "асинхронными" процессами, конечный пользователь не часто ощущает замедление из-за записи на диск. Но есть еще ряд нюансов, непосредственно влияющих на производительность системы с точки зрения конечных пользователей.
Как вы думаете, что делает сервер при обновлении столбца без реального изменения со следующими объектами:
Срабатывают ли строчные триггеры типа 'update of {список_столбцов}'?
before row
after row
instead of Изменяются ли индексы, включающие такой столбец?
Что, если это индексы на основе B*-дерева?
А как насчет индексов на основе битовых карт?
Что будет с индексами по функции (function-based indexes)?
Как сервер будет обеспечивать целостность ссылок?
Если этот столбец - подчиненный?
Если этот столбец - главный?