Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

oracle обновление всех записей таблицы

1.9K
26 августа 2009 года
smax13
63 / / 03.08.2004
привет,
oracle 9..
партицированная таблица содержит около 3 000 записей. доступ к таблице осуществляют одновременно примерно 100 пользователей. необходимо обновить одно поле для всех записей таблицы. поле обновляется исходя из его текущего значения (типа, update table20 set field5 = field5 * 2;). вопрос: как наиболее эффективно это сделать. в смысле, нужно ли явно блокировать таблицу и, если да, то в каком режиме, или, может что-то еще.
буду благодарен, если скинете ссылочку ("гугление" не очень помогло...), где описывается методика..
заранее благодарен.
51K
26 августа 2009 года
laba
16 / / 20.08.2009
Если field5 не участвует в правиле партиции

Самый тупой - update...; commit; Недостаток: 1 - все чуть-чуть подождут ; 2 - сегмент отката должен выдержать. Update всё сама полочит (ораклу надо доверять)

Более безопасный - цикл перебирает записи, для каждой update+commit Недостаток: 1) есть ситуации когда не подходит 2) цикл надо написать :)
1.9K
26 августа 2009 года
smax13
63 / / 03.08.2004
спасибо за ответ.
поле не участвует в партиции.
в любом случае таблицу придется обновлять, используя пакет, поэтому первое, что пришло в голову - это как раз в цикле делать (update + commit). только не для кажной записи, а для группы записей (есть возможность сгруппировать по дате).
то есть такой вариант подходит...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог