powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / увеличение degree параллели не дает особого увевличения производительности вставки
37 сообщений из 37, показаны все 2 страниц
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750257
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Всех с наступающими праздниками!
К делу.
Есть таблица на 340 млн строк. Для одного дела, я сначала перекладывают данные из нее во вспомогательную таблицу

CREATE /*+ APPEND */ TABLE t_aux parallel (degree 8) AS SELECT * FROM t;)

Потом транкейчу таблицу t и кладу данные обратно командой , предварительно сделав

ALTER TABLE t
PARALLEL 8;

ALTER TABLE t_aux
PARALLEL 8;

вот сам инсерт

INSERT /*+ APPEND */ INTO t SELECT
*
FROM
t_aux;
Работало 5 часов.
Решила сделать параллель 32. Но это укорило только первый CTAS .Инсерт-аппенд идет практически столько же по времени, может чуть быстрее.
Я что-то делаю не так? Смотрела в сессии - их действительно 33 висит когда инсертится, то есть работа распераллеливается.
Можно как то еще ускорить этот инсерт?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750277
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarova,

Лучше расскажите в чем суть вашего «одного дела». Возможно, вы выбрали не самый лучший способ для этого.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750280
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarova,

Даже первая половина дела вызывает некоторые недоумения. Зачем делать CTAS с последующим усечением исходной таблицы? Что мешало сделать обмен секциями через промежуточную секционированную таблицу?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750281
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна, меняю типы данных, которые невозможно поменять без обнуления столбцов.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750282
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна, даже если выбрала не лучший способ, вопрос не в этом. а том почему увеличения degree вчетверо не дает значительно ускорения insert/append
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750299
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarova,
индексы на старой таблице отключены?

что мешает сделать CTAS сразу с нужными типами данных?

Код: plsql
1.
CREATE TABLE t_aux parallel (degree 8) AS SELECT t.col1, cast(t.col2 as new_data_type) col2  FROM t;


ну и nologging не забыть
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750300
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уперлись в пропускную способность дисковой подсистемы?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750306
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже 32 девушки не смогут выйти из декрете раньше, чем через 9 месяцев.

Хотя... многие эффективные менеджеры ( TM ) ожидают, что уже через 8-10 дней результат начнет появляться на свет
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750324
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MazoHist, индексы предварительно дропнула. Нологгинг запрещено включать на уровне настроек, сделанными дба.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750327
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, так может и вообще ну его этот параллелизм:-)?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750332
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
landy, а как это проверить?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750337
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что мешает сделать CTAS сразу с нужными типами данных?

[src oracle]
CREATE TABLE t_aux parallel (degree 8) AS SELECT t.col1, cast(t.col2 as new_data_type) col2 FROM t;

если не добьюсь адекватного времени своим способом, то так и буду делать скорее всего
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750344
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarova,

1. Боюсь напутать, но append с параллелью не живет, вроде?
2. dbms_parallel_execute?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750345
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaLeonid Kudryavtsev, так может и вообще ну его этот параллелизм:-)?
1) Все зависит от объема данных / оборудования

Вы точно уверены, что Ваше оборудование позволяет одновременно обрабатывать 32 потока данных?

Задача то в чистом виде копирование, читаем с диска = пишем на диск. Ну 2, может 4 потока позволят чуть-чуть поднять through input на шине, но 32 потока что будут делать?

и честно говоря, 5 часов это как-то безумно много. Даже "офисный" диск вполне может выдать 80-100 Mb /s. Т.е. 5 часов это up to 1.8 Tb данных. Видел полки на FC, которые на чтение full table scan выдавали 1-2 Tb/s

С другой стороны, видел базы, где тайблеспейсы лежали на сетевом диске расположенных на удаленной площадки и на "бытовом" NAS сервере ))).

Т.ч. смотреть, на чем стоим и уж тогда думать, можно ли что-то еще из оборудования/базы выжать.

2) Как верно заметили, как минимум одно копирование лишнее. Т.е. без издевательств над сервером, легким движением руки, можно ускориться минимум в 2-а раза
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750351
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaменяю типы данных, которые невозможно поменять без обнуления столбцов.EvgeniaMakarovaесли не добьюсь адекватного времени своим способом

Индусы так старались, разрабатывали пакет DBMS_REDEFINITION для онлайн переопределения таблиц.
А вы изобретаете собственный велосипед с ортогональным расположением колес и на лошадиной тяге...
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750360
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина АннаИндусы так старались
Уж так старались, что после редефа секционированной таблицы с rowid вместо PK обмен секциями с CTAS-табличкой становится весьма затруднителен, имейте ввиду.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750368
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaLeonid Kudryavtsev, так может и вообще ну его этот параллелизм:-)?

Ну и еще такой момент. На время данной операции, Вы будете жутко потреблять обмен с диском, т.е. должны резко тормозить других пользователей.

Если база промышленная и на ней кто-то работает, то легким движением руки, Вы вполне можете на 5 часов превратить сервер в "персональный компьютер коллективного пользования"

Т.ч. перетягивая одеяло на себя, проснувшийся из-за холода со-кроватник, вполне может и чем-то тяжелым с просоня запустить ))))

IMHO
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750375
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, никого не будет, выделенное время для релиза. никого не заимпактит.другое дело что релиз не может длиться сутки и надо как можно быстрее обновить
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750380
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaINSERT /*+ APPEND */ INTO t SELECT
*
FROM
t_aux;
Работало 5 часов.

какой wait event был в эти 5 часов у этих сессий?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750383
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev
Вы точно уверены, что Ваше оборудование позволяет одновременно обрабатывать 32 потока данных?

нет, я не уверена. меня смущает что CTAS ускорился, а инсерт/аппенд не желает ускоряться. Вроде то же оборудование, и то же перекладывание данных, упирающееся в диски.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750387
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна,

Он совсем медленно делает и лично для моих временных рамок не подходит.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750392
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oragrafEvgeniaMakarova,

1. Боюсь напутать, но append с параллелью не живет, вроде?
2. dbms_parallel_execute?


можно опустить слово аппенд , паралелльно вставляется все равно только аппендом
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750395
Valergrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРешила сделать параллель 32. Но это укорило только первый CTAS .Инсерт-аппенд идет практически столько же по времени, может чуть быстрее.
Я что-то делаю не так? Смотрела в сессии - их действительно 33 висит когда инсертится, то есть работа распераллеливается.

Каким образом вы увеличили параллельность? Если вы просто добавили хинт PARALLEL - то вы распараллелили только SELECT, сессий будет 33, 32 будут читать исходную таблицу, но вставлять будет только одна. Т.к. INSERT - это дмл операция, то включать параллельность для него нужно командой
авторalter session enable parallell dml
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750397
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaОн совсем медленно делает и лично для моих временных рамок не подходит. Если вы про редефинишен, то там параллель есть и он основную работу делает заранее, до часа Х. Почитайте доку.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750403
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaЩукина Анна,

Он совсем медленно делает и лично для моих временных рамок не подходит.О каких временных рамках идет речь? DBMS_REDEFINITION работает "в фоне". Всё время, пока идет переопределение, исходной таблицей можно пользоваться (практически) без ограничений.

Варианты ускорения в два раза именно вашего подхода вам уже озвучили:

1) CATS в таблицу правильной структуры + замена местами старой и новой таблицы (два RENAME TABLE) + не забыть права, триггеры, индексы и прочую шелуху перенавешать со старой таблицы на новую

2) Вместо CTAS сделать обмен секциями через промежуточную секционированную таблицу (если редакция оракла позволяет) + модификация старой таблицы и заполнение её данными.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750405
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarova,

Плюсуюсь к словам Анны - мне кажется, вы велосипед изобретаете. Опишите, что во что вы кастуете. Если вы типы с конструкторами неявно вызываете - там много запросов к метаданным идет. Но это я уже шар потираю.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750453
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
EvgeniaMakarova,

какие именно типы данных меняются и на какие? Выложите отчет real-time sql monitor'a.


Щукина Анна1) CTAS в таблицу правильной структуры + замена местами старой и новой таблицы (два RENAME TABLE) + не забыть права, триггеры, индексы и прочую шелуху перенавешать со старой таблицы на новую

2) Вместо CTAS сделать обмен секциями через промежуточную секционированную таблицу (если редакция оракла позволяет) + модификация старой таблицы и заполнение её данными.
Может именно автокаст и происходит в координаторе, тогда эта проблема будет с любым из этих вариантов.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750498
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

CTAS с кастованием отработал за 15 мин. Иду этим путем.

Всем спасибо за участие!

П.С типы данных менялись с намбера на строку, строку на намбер, расширение строки, расширение намбераю. составных типов нет
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750766
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кароче поторопилась я с выводами.
15 минут занимает CTAS БЕЗ ПАРТИЦИОНИРОВАНИЯ.
А исходная таба партиционированная.
Когда начала делать CTAS с партиционированием, все успешно отвалилось - не хватает PGA.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750795
rpovarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
EvgeniaMakarovaне хватает PGA
На исходной таблице точно триггеров нет?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750797
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rpovarov,

на исходной табе триггеров нет
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750824
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarovaне хватает PGA.

нехватает на 32 parallel processes'а или у Вас их уже больше ? )))
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39750840
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev, с 32 пробовала только
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39752346
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу alter session parallel dml enable я давно уже перешёл на хинт ENABLE_PARALLEL_DML, как-то он более удобен.
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39752409
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Shtockпо поводу alter session parallel dml enable я давно уже перешёл на хинт ENABLE_PARALLEL_DML, как-то он более удобен.ну enable ладно, но alter session имеет еще и force:
Код: plsql
1.
alter session force parallel dml parallel 32;

такого хинта force_parallel_dml(N) нет
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39754467
EvgeniaMakarova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите, а interim табу нужно мне сразу самой создавать партиционированной, если моя целевая таблица партиционированная, или Оракл сам все сделает и мне только создать интерим табу с нужными типами столбцов ?
...
Рейтинг: 0 / 0
увеличение degree параллели не дает особого увевличения производительности вставки
    #39754529
oragraf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvgeniaMakarova,

партицированной с нужными типами столбцов.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / увеличение degree параллели не дает особого увевличения производительности вставки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]