Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.19;
Скачать: CL | DM;

Вниз

Вопрос к знатокам оракла. Есть ли ограничение на кол-во действий   Найти похожие ветки 

 
data ©   (2008-08-29 13:47) [0]

в рамках одной транзакции? (версия 9).


 
Игорь Шевченко ©   (2008-08-29 13:50) [1]

что такое "действие" ?


 
Игорь Шевченко ©   (2008-08-29 13:51) [2]

по сабжу - ограничение диктуется размером REDO-лога


 
data ©   (2008-08-29 13:53) [3]

сорри, не уточнила, под "действием" я понимала Insert одной записи, Update одной записи.


 
data ©   (2008-08-29 13:57) [4]


> размером REDO-лога


спасибо, Игорь.


 
Игорь Шевченко ©   (2008-08-29 14:14) [5]


> Insert одной записи, Update одной записи.


сколько угодно, ограничения нет, пока место в REDO не кончится.
то есть, update сотен миллионов записей в одной транзакции вполне допустимое действие


 
data ©   (2008-08-29 14:39) [6]


> то есть, update сотен миллионов записей в одной транзакции
> вполне допустимое действие


как раз это и нужно.. спасибо еще раз.


 
Petr V. Abramov ©   (2008-08-29 14:41) [7]


> Игорь Шевченко ©   (29.08.08 13:51) [2]

только не REDO, а UNDO, и не лога, а tablespace
:)


 
Vlad Oshin ©   (2008-08-29 14:44) [8]

У Тома Кайта в начале первой книги(из 2х, "Oracle для профессионалов") про это написано подробнее.
В т.ч. как конфигурируются, из каких соображений.
Никак не прочитаю.. :)


 
data ©   (2008-08-29 14:51) [9]


> REDO, а UNDO, и не лога, а tablespace


А если этого спейса всеже не хватит - транзакция корректно откатится?


 
Petr V. Abramov ©   (2008-08-29 14:55) [10]


> data ©   (29.08.08 14:51) [9]

да


 
data ©   (2008-08-29 15:15) [11]

То есть получается, если планируется больше update/insert, чем выдерживает Undo, то нужно разделять на неск. транзакций. Есть ли способы вычислить не опытным путем (эксперименты нежелательны) хотя бы приблизительно кол-во единичных update/insert, доступных для одной транзакции, по известному размеру UNDO и известному формату таблицы, куда будут вставляться (или меняться, если есть) записи?


 
Vlad Oshin ©   (2008-08-29 15:24) [12]


> У Тома Кайта в начале первой книги(из 2х, "Oracle для профессионалов")
> про это написано подробнее.

там :) вычисляется до процента, кажется

по-логике, туда должна попасть инф-ция, чтоб можно было восстановить
insert - не тяжелая оп-ция, для восстановления достаточно id
delete тяжелее, запись надо скэшировать, чтоб восстановить
update, насколько помню, более тежеловесная оп-ция. Это и delete и insert
А если предусмотрен каскадный update.. как тут вычислить?


 
Игорь Шевченко ©   (2008-08-29 15:34) [13]


> если планируется больше update/insert, чем выдерживает Undo,
>  то нужно разделять на неск. транзакций


нужно увеличивать undo


 
data ©   (2008-08-29 15:40) [14]


> А если предусмотрен каскадный update.. как тут вычислить?

каскадного нет.
Операция такая: из источника (пусть это будет текстовый файл) с известным конечным кол-вом записей с уникальными ID нужно вставить все эти записи в некую таблицу БД, если запись там уже есть (определяется по полю с ID), то сделать update.
Хочется до начала операции знать на сколько транзакций ее делить, взависимости от кол-ва записей в текстовом файле, текущего свободного объема в UNDO, формата записей (формат у всех одинаковый и от операции к опрерации не меняется, таблица - приемник тоже всегда одна и таже).


 
data ©   (2008-08-29 15:46) [15]


> нужно увеличивать undo


залив происходит в автоматич. режиме ночью, и мы не можем знать заранее сколько планируется залить. Может быть 0, может быть неск. миллионов. Не зависит от нас, и с достаточной для настройки Undo точностью пока не прогнозируется. Для железного срабатывания в данной ситуации, мне кажется проще бить на транзакции, чем гадать с Undo, тем более, каждая прощелканная загрузка плохо отражается на бизнесе :).


 
Petr V. Abramov ©   (2008-08-29 16:02) [16]


> data ©   (29.08.08 15:15) [11]


> Есть ли способы вычислить не опытным путем (эксперименты
> нежелательны) хотя бы приблизительно кол-во единичных update/insert


ну плюс-минус много лаптей по карте так: смотришь размер вставляемой записи (сколько какой datatype занимает описано в Concepts) или (размер обновляемых полей) x 2, прибавляешь байт 100 на заголовок блока, получаешь размер change-вектора (которые в undo и пишутся) на insert/update записи. Если помножишь на 2-3, есть большие шансы, что влезет.


 
Petr V. Abramov ©   (2008-08-29 16:05) [17]

> Petr V. Abramov ©   (29.08.08 16:02) [16]
забыл про блоки индексов.


 
Vlad Oshin ©   (2008-08-29 16:13) [18]


>  У Тома Кайта в начале первой книги(из 2х, "Oracle для профессионалов")

:)
категорически не советуется
> бить на транзакции

да и зачем нужны будут, первые изменения, если остальные не произойдут?
Хотя, может и нужны, от логики зависит..
Но думается, что сделать размер отката поболее предпочтительнее. Потом можно и сократить.
Жалко книжка дома..


 
Petr V. Abramov ©   (2008-08-29 16:19) [19]


> да и зачем нужны будут, первые изменения, если остальные
> не произойдут?

затем что можно будет подправить и залить проблемный кусок отдельно.


 
Ламо777   (2008-08-29 16:30) [20]

А savepoint"ы не помогут?


 
ANB   (2008-08-29 17:13) [21]


> А savepoint"ы не помогут?

Нет.



Страницы: 1 вся ветка

Текущий архив: 2008.10.19;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.017 c
2-1221132574
DMX
2008-09-11 15:29
2008.10.19
Уникальная строка


15-1219338554
Sergey Masloff
2008-08-21 21:09
2008.10.19
Несколько вакансий. Москва. Delphi, Oracle. Не гуру


1-1200907741
Ангела
2008-01-21 12:29
2008.10.19
Подскажите по экспорту, пожалуйста


15-1219872645
+koha
2008-08-28 01:30
2008.10.19
Кто занимается параллельными машинами подскажите


15-1216905772
diploDocs
2008-07-24 17:22
2008.10.19
Два сюрприза Microsoft