|
|
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Всем привет! Всех с наступающими праздниками! К делу. Есть таблица на 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 висит когда инсертится, то есть работа распераллеливается. Можно как то еще ускорить этот инсерт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 15:38 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarova, Лучше расскажите в чем суть вашего «одного дела». Возможно, вы выбрали не самый лучший способ для этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:00 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarova, Даже первая половина дела вызывает некоторые недоумения. Зачем делать CTAS с последующим усечением исходной таблицы? Что мешало сделать обмен секциями через промежуточную секционированную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:03 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, меняю типы данных, которые невозможно поменять без обнуления столбцов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:05 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, даже если выбрала не лучший способ, вопрос не в этом. а том почему увеличения degree вчетверо не дает значительно ускорения insert/append ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:07 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarova, индексы на старой таблице отключены? что мешает сделать CTAS сразу с нужными типами данных? Код: plsql 1. ну и nologging не забыть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:26 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Уперлись в пропускную способность дисковой подсистемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:26 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Даже 32 девушки не смогут выйти из декрете раньше, чем через 9 месяцев. Хотя... многие эффективные менеджеры ( TM ) ожидают, что уже через 8-10 дней результат начнет появляться на свет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:33 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
MazoHist, индексы предварительно дропнула. Нологгинг запрещено включать на уровне настроек, сделанными дба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:46 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, так может и вообще ну его этот параллелизм:-)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:49 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
landy, а как это проверить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:52 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
что мешает сделать CTAS сразу с нужными типами данных? [src oracle] CREATE TABLE t_aux parallel (degree 8) AS SELECT t.col1, cast(t.col2 as new_data_type) col2 FROM t; если не добьюсь адекватного времени своим способом, то так и буду делать скорее всего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 16:56 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarova, 1. Боюсь напутать, но append с параллелью не живет, вроде? 2. dbms_parallel_execute? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:07 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
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-а раза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:07 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarovaменяю типы данных, которые невозможно поменять без обнуления столбцов.EvgeniaMakarovaесли не добьюсь адекватного времени своим способом Индусы так старались, разрабатывали пакет DBMS_REDEFINITION для онлайн переопределения таблиц. А вы изобретаете собственный велосипед с ортогональным расположением колес и на лошадиной тяге... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:18 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Щукина АннаИндусы так старались Уж так старались, что после редефа секционированной таблицы с rowid вместо PK обмен секциями с CTAS-табличкой становится весьма затруднителен, имейте ввиду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:26 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarovaLeonid Kudryavtsev, так может и вообще ну его этот параллелизм:-)? Ну и еще такой момент. На время данной операции, Вы будете жутко потреблять обмен с диском, т.е. должны резко тормозить других пользователей. Если база промышленная и на ней кто-то работает, то легким движением руки, Вы вполне можете на 5 часов превратить сервер в "персональный компьютер коллективного пользования" Т.ч. перетягивая одеяло на себя, проснувшийся из-за холода со-кроватник, вполне может и чем-то тяжелым с просоня запустить )))) IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:36 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, никого не будет, выделенное время для релиза. никого не заимпактит.другое дело что релиз не может длиться сутки и надо как можно быстрее обновить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:41 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarovaINSERT /*+ APPEND */ INTO t SELECT * FROM t_aux; Работало 5 часов. какой wait event был в эти 5 часов у этих сессий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:47 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev Вы точно уверены, что Ваше оборудование позволяет одновременно обрабатывать 32 потока данных? нет, я не уверена. меня смущает что CTAS ускорился, а инсерт/аппенд не желает ускоряться. Вроде то же оборудование, и то же перекладывание данных, упирающееся в диски. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:48 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, Он совсем медленно делает и лично для моих временных рамок не подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:50 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
oragrafEvgeniaMakarova, 1. Боюсь напутать, но append с параллелью не живет, вроде? 2. dbms_parallel_execute? можно опустить слово аппенд , паралелльно вставляется все равно только аппендом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:55 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
авторРешила сделать параллель 32. Но это укорило только первый CTAS .Инсерт-аппенд идет практически столько же по времени, может чуть быстрее. Я что-то делаю не так? Смотрела в сессии - их действительно 33 висит когда инсертится, то есть работа распераллеливается. Каким образом вы увеличили параллельность? Если вы просто добавили хинт PARALLEL - то вы распараллелили только SELECT, сессий будет 33, 32 будут читать исходную таблицу, но вставлять будет только одна. Т.к. INSERT - это дмл операция, то включать параллельность для него нужно командой авторalter session enable parallell dml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:57 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarovaОн совсем медленно делает и лично для моих временных рамок не подходит. Если вы про редефинишен, то там параллель есть и он основную работу делает заранее, до часа Х. Почитайте доку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 17:58 |
|
||
|
увеличение degree параллели не дает особого увевличения производительности вставки
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarovaЩукина Анна, Он совсем медленно делает и лично для моих временных рамок не подходит.О каких временных рамках идет речь? DBMS_REDEFINITION работает "в фоне". Всё время, пока идет переопределение, исходной таблицей можно пользоваться (практически) без ограничений. Варианты ускорения в два раза именно вашего подхода вам уже озвучили: 1) CATS в таблицу правильной структуры + замена местами старой и новой таблицы (два RENAME TABLE) + не забыть права, триггеры, индексы и прочую шелуху перенавешать со старой таблицы на новую 2) Вместо CTAS сделать обмен секциями через промежуточную секционированную таблицу (если редакция оракла позволяет) + модификация старой таблицы и заполнение её данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2018, 18:06 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39750282&tid=1882980]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
149ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 472ms |

| 0 / 0 |
