Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / увеличение degree параллели не дает особого увевличения производительности вставки / 25 сообщений из 37, страница 1 из 2
19.12.2018, 15:38
    #39750257
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
Всем привет! Всех с наступающими праздниками!
К делу.
Есть таблица на 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
19.12.2018, 16:00
    #39750277
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
EvgeniaMakarova,

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

Даже первая половина дела вызывает некоторые недоумения. Зачем делать CTAS с последующим усечением исходной таблицы? Что мешало сделать обмен секциями через промежуточную секционированную таблицу?
...
Рейтинг: 0 / 0
19.12.2018, 16:05
    #39750281
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
Щукина Анна, меняю типы данных, которые невозможно поменять без обнуления столбцов.
...
Рейтинг: 0 / 0
19.12.2018, 16:07
    #39750282
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
Щукина Анна, даже если выбрала не лучший способ, вопрос не в этом. а том почему увеличения degree вчетверо не дает значительно ускорения insert/append
...
Рейтинг: 0 / 0
19.12.2018, 16:26
    #39750299
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
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
19.12.2018, 16:26
    #39750300
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
Уперлись в пропускную способность дисковой подсистемы?
...
Рейтинг: 0 / 0
19.12.2018, 16:33
    #39750306
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
Даже 32 девушки не смогут выйти из декрете раньше, чем через 9 месяцев.

Хотя... многие эффективные менеджеры ( TM ) ожидают, что уже через 8-10 дней результат начнет появляться на свет
...
Рейтинг: 0 / 0
19.12.2018, 16:46
    #39750324
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
MazoHist, индексы предварительно дропнула. Нологгинг запрещено включать на уровне настроек, сделанными дба.
...
Рейтинг: 0 / 0
19.12.2018, 16:49
    #39750327
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
Leonid Kudryavtsev, так может и вообще ну его этот параллелизм:-)?
...
Рейтинг: 0 / 0
19.12.2018, 16:52
    #39750332
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
landy, а как это проверить?
...
Рейтинг: 0 / 0
19.12.2018, 16:56
    #39750337
EvgeniaMakarova
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
что мешает сделать 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
19.12.2018, 17:07
    #39750344
oragraf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
EvgeniaMakarova,

1. Боюсь напутать, но append с параллелью не живет, вроде?
2. dbms_parallel_execute?
...
Рейтинг: 0 / 0
19.12.2018, 17:07
    #39750345
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
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
19.12.2018, 17:18
    #39750351
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
увеличение degree параллели не дает особого увевличения производительности вставки
EvgeniaMakarovaменяю типы данных, которые невозможно поменять без обнуления столбцов.EvgeniaMakarovaесли не добьюсь адекватного времени своим способом

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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