Главная страница
    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.49 MB
Время: 0.006 c
11-1194295636
Elec3C
2007-11-05 23:47
2008.10.19
Вопрос по OpenSaveDialog у


2-1221236761
New_ser
2008-09-12 20:26
2008.10.19
Как настроить ADOConnection для работы в сети?


15-1220026293
XentaAbsenta
2008-08-29 20:11
2008.10.19
Ветка - "Проектирование"


1-1200772003
asdqwer
2008-01-19 22:46
2008.10.19
Усовершенствованный RichEdit с возможностью выделения набор ячеек


15-1219823314
Darvin
2008-08-27 11:48
2008.10.19
Эффекты на висте. Какие будут мнения?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский