|
|
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Прошу сразу не закидывать меня тапками. БД у меня на Oracle 10g. В одной из таблиц я решил прибраться и удалил дубли строк и другой мусор. В таблице осталось 50 млн записей, таблица не секционирована. Навешано на неё 8 простых составных индексов. Теперь, после чистки мусора, очень замедлился insert в эту таблицу. 20 тыщ строк вставляются 40 минут. Подскажите, что может быть? Надо ли индексы перестраивать или надо просто прогнать таблицу через gather_tab_stat ? С чем связано такое падение скорости вставки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 09:32 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Водолей, Если ты никогда ничего не удалял, то всегда вставка была в конец сегмента. После очистки появилось свободное место в середине, которое управляется по разному в зависимости от manual/automatic segment management oracle (вроде с 10gR2 по умолчанию automatic). Полагаю, в худшем случае при вставке 20к строк может быть изменено 20к блоков. А вообще, трассировка многое прояснила бы или даже если посмотреть event и p1, p2, p3 в v$active_session_history. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 09:49 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Водолей, Если таблица небольшая, то может ее проще пересоздать с необходимым набором данных + навесить индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 11:40 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Ну это уже совсем за гранью Достаточно сделать SHRINK, а лучше MOVE (и не забыть про LOB, если есть), после чего перестроить индексы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 11:47 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, не совсем ясен уровень автора темы, но в любом случае любой из предложенных вариантов можно пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:00 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Sheriffua, Уровень у автора весьма не высокий :) Основная задержка связана с db file seqquential read. Сейчас скорость еще упала, 20 тыщ записей уже второй час висят на вставке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:06 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Ну да Пересоздание не требует таких "уровней" Там не надо отслеживать права, констрейнты PS. 50 млн. оно, конечно, не сильно много, но и маленькой ее назвать тоже язык не поворачивается (если там не одно поле, конечно) PPS. Насколько помню, в 10g были страшные баги со SHRINK, если этот процесс аварийно заканчивается, поэтому предлагаю MOVE PPPS. Если там 24x7, то либо терпеть, пока поднабьется (тут еще интересно, а сколько в процентном соотношении ТС удалил строк), либо попробовать DBMS_REDEFINITION, что, правда, требует некоторого "уровня" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:07 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНу это уже совсем за гранью Достаточно сделать SHRINK, а лучше MOVE (и не забыть про LOB, если есть), после чего перестроить индексыСможешь продемонстировать когда move + rebuild index опережает по времени ctas + create index хотя бы на 20%? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:09 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Сможешь продемонстрировать, когда хотя бы отстает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:10 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, пробовал insert с хинтом /*+APPEND*/ но толку нет. также все медленно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:21 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровСможешь продемонстрировать, когда хотя бы отстает?CTAS может быть полезен в случаях когда интересует сжатие т.к. дает возможность отсортировать MOVE может быть полезен когда нет смысла париться с правами и инвалидацией производительность сопоставима в обоих случаях оба позволяют указывать nologging где же грань? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:22 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
полей в таблице - 22, почти все текстовые, lob нет. индексов - 8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:23 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Грань злаВячеслав ЛюбомудровСможешь продемонстрировать, когда хотя бы отстает?CTAS может быть полезен в случаях когда интересует сжатие т.к. дает возможность отсортироватьТут можно согласиться (хотя, естественно, у аффтара не тот случай), но тоже с оговорками -- по собственному опыту: делал просто MOVE COMPRESS и CTAS ... COMPRESS ... SORT, разница 5-10%, но это мои данные и мой опыт Грань злаMOVE может быть полезен когда нет смысла париться с правами и инвалидациейинвалидация тут не причем, а вот перевешивание и проверка всех ограничений (включая CHECK, например, не говоря уж о кучи FOREIGN KEY) есть вполне себе измеримая разница по времени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:34 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Грань злапроизводительность сопоставима в обоих случаях оба позволяют указывать nologging где же грань?Разница в трудозатратах (как необходимость ничего не забыть, так и изучать, а возможно, и тестировать новые конструкции) MOVE+REBUILD банально проще, а результат не хуже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:37 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
SHRINK в этом отношении еще проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:38 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
ВодолейВячеслав Любомудров, пробовал insert с хинтом /*+APPEND*/ но толку нет. также все медленноА каким оператором (интересует SELECT-часть)? Нет ли там у тебя завязки на твою многострадальную таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:39 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, да простой insert /*+APPEND*/ into journal select * from tempo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:46 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Ну и? Ты уверен, что тормозит именно вставка, а не выборка? Если хочешь разобраться -- анализируй ожидания Если хочешь уменьшить время на вставку -- перестраивай таблицу и индексы, только после этого можно что-то анализировать PS. И еще маленький советик -- после /*+ ставь пробел, иначе хинт может игнорироваться, была такая бага в SQL, вызываемого из PL/SQL в ранних версиях, но может у тебя 10.2.0.1 и оно тоже попадает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:53 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, уверен, что тормозит именно целевая таблица. Таблица tempo пересоздается каждый раз при поступлении данных. И данные с неё отлично раньше переносились в основную таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 13:05 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
Я нихрена не понял -- проблема у тебя или у меня? Зачем ты мне что-то пытаешься объяснить (оценочными суждениями)? Все твои размышления -- "раньше работало быстро", "тормозит именно целевая таблица" и т.д. это просто эмоции Если хочешь разобраться -- анализируй трассировку, где именно затык Почему это может происходить -- тебе уже сказали Как влияние этого можно уменьшить -- уже сказали PS. Простая проверка, что APPEND работает, это до коммита попробовать выборку из этой-же (куда вставляется) таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 13:13 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
commit после чистки мусора сделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 16:05 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
DВАcommit после чистки мусора сделал? это пять ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 20:53 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 03:56 |
|
||
|
Упала скорость вставки записей после чистки таблицы
|
|||
|---|---|---|---|
|
#18+
DВАcommit после чистки мусора сделал?Вот честно, вертелся такой же вопрос, но я как-то постеснялся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 05:25 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39460815&tid=1885821]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
224ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 534ms |

| 0 / 0 |
