Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
01.02.2019, 10:38
|
|||
---|---|---|---|
|
|||
Вопрос по DBMS_PARALLEL_EXECUTE |
|||
#18+
Добрый день. Подскажите, пожалуйста, в какую сторону копать. Есть необходимость ускорить процесс орбаботки гигантской таблицы. Думаю использовать DBMS_PARALLEL_EXECUTE. Но в примерах сначала бьют на чанки всю таблицу, потом так же run_task по этим чанкам. Но мне не надо всю таблицу лопатить, обработать нужно строки по конкретному условию. Как правильнее сделать? 1) Воспользоваться DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_SQL и в запросе указать в where нужные критерии отбора 2) Или dbms_parallel_execute.create_chunks_by_rowid и уже в обработке update поставить where нужные условия ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.02.2019, 10:56
|
|||
---|---|---|---|
Вопрос по DBMS_PARALLEL_EXECUTE |
|||
#18+
4saken, Делаешь табличку: from_id_for_chunk, to_id_for_chunk, id_from_huge_table Наполняешь ее запросом и дальше (dml с джойнами или процедура) пилишь паралелями. Вопрос про консистентность - ну, ты в курсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.02.2019, 11:01
|
|||
---|---|---|---|
|
|||
Вопрос по DBMS_PARALLEL_EXECUTE |
|||
#18+
Если изменяемых данных не много, то 1+2, если почти вся таблица, то 2. Условия в where для update всё равно ставить надо, там же интервал на входе, нет никакой гарантии, что в этом интервале не окажется "ненужных" данных. Ещё имеет смысл посмотреть на Method 7 и 8: http://www.orafaq.com/node/2450. Но тут вроде Enterprise нужен, чтобы parallel работал... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=52&mobile=1&tid=1882850]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 336ms |
total: | 479ms |
0 / 0 |