Существует ли ограничение на объем работы, которую я могу выполнить в одной транзакции Oracle? - PullRequest
4 голосов
/ 04 мая 2011

Мне нужно обновить три таблицы за одну транзакцию. Я использую Oracle Spatial, пересекающийся с потенциально сотнями тысяч записей. Чтобы сохранить целостность перекрестных ссылок, мне действительно нужно обновить три таблицы с большими объемами перекрестных ссылок в одной транзакции.

Есть ли измеримый предел того, сколько я могу сделать за одну транзакцию? Существуют ли подводные камни для создания тысяч операций вставки / обновления / удаления в одной транзакции? Что касается ловушек, есть ли какие-либо известные схемы / практики для их устранения?

Ответы [ 2 ]

7 голосов
/ 04 мая 2011

Нет, нет ограничений на объем работы, которую вы можете выполнить в одной транзакции, при условии, что вы предоставили достаточно места UNDO для размещения изменений. Конечно, если у вас есть много людей, одновременно выполняющих транзакции, и у вас есть вероятность того, что несколько людей будут пытаться воздействовать на одну и ту же строку, длительные транзакции могут привести к конфликту блокировок. И если ваши транзакции требуют участия человека (т. Е. Ваша транзакция - это человек, пытающийся различными способами запустить конвейер в географическом регионе), одна длительная транзакция может создать проблемы, когда человек хочет уйти с работы до того, как он будет полностью выполнен.

Oracle Workspace Manager - это компонент базы данных Oracle, который был специально создан для обработки этих видов очень длительных транзакций на больших наборах пространственных данных, позволяя пользователям работать в отдельных рабочих пространствах, которые можно объединить вернуться в родительское рабочее пространство через несколько дней или недель. Семантика Workspace Manager очень похожа на семантику транзакций, но предоставляет возможность покидать и возвращаться в рабочее пространство, переключаться между рабочими пространствами и иметь иерархию дочерних рабочих пространств.

2 голосов
/ 04 мая 2011

ограничение устанавливается размером отмены табличного пространства.Каждое изменение транзакции должно полностью соответствовать табличному пространству отмены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...