powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Упала скорость вставки записей после чистки таблицы
33 сообщений из 33, показаны все 2 страниц
Упала скорость вставки записей после чистки таблицы
    #39460769
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу сразу не закидывать меня тапками. БД у меня на Oracle 10g. В одной из таблиц я решил прибраться и удалил дубли строк и другой мусор. В таблице осталось 50 млн записей, таблица не секционирована. Навешано на неё 8 простых составных индексов.
Теперь, после чистки мусора, очень замедлился insert в эту таблицу. 20 тыщ строк вставляются 40 минут.
Подскажите, что может быть?

Надо ли индексы перестраивать или надо просто прогнать таблицу через gather_tab_stat ? С чем связано такое падение скорости вставки?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460773
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Водолей,

Если ты никогда ничего не удалял, то всегда вставка была в конец сегмента.
После очистки появилось свободное место в середине, которое управляется по разному в зависимости от manual/automatic segment management oracle (вроде с 10gR2 по умолчанию automatic). Полагаю, в худшем случае при вставке 20к строк может быть изменено 20к блоков.

А вообще, трассировка многое прояснила бы или даже если посмотреть event и p1, p2, p3 в v$active_session_history.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460790
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Водолей,

Если таблица небольшая, то может ее проще пересоздать с необходимым набором данных + навесить индексы.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460792
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это уже совсем за гранью
Достаточно сделать SHRINK, а лучше MOVE (и не забыть про LOB, если есть), после чего перестроить индексы
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460794
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

не совсем ясен уровень автора темы, но в любом случае любой из предложенных вариантов можно пробовать
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460797
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sheriffua,
Уровень у автора весьма не высокий :)

Основная задержка связана с db file seqquential read. Сейчас скорость еще упала, 20 тыщ записей уже второй час висят на вставке.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460798
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да
Пересоздание не требует таких "уровней"
Там не надо отслеживать права, констрейнты

PS. 50 млн. оно, конечно, не сильно много, но и маленькой ее назвать тоже язык не поворачивается (если там не одно поле, конечно)
PPS. Насколько помню, в 10g были страшные баги со SHRINK, если этот процесс аварийно заканчивается, поэтому предлагаю MOVE
PPPS. Если там 24x7, то либо терпеть, пока поднабьется (тут еще интересно, а сколько в процентном соотношении ТС удалил строк), либо попробовать DBMS_REDEFINITION, что, правда, требует некоторого "уровня"
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460800
Грань зла
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровНу это уже совсем за гранью
Достаточно сделать SHRINK, а лучше MOVE (и не забыть про LOB, если есть), после чего перестроить индексыСможешь продемонстировать когда move + rebuild index опережает по времени ctas + create index хотя бы на 20%?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460801
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сможешь продемонстрировать, когда хотя бы отстает?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460804
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
пробовал insert с хинтом /*+APPEND*/ но толку нет. также все медленно
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460805
Грань зла
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровСможешь продемонстрировать, когда хотя бы отстает?CTAS может быть полезен в случаях когда интересует сжатие т.к. дает возможность отсортировать
MOVE может быть полезен когда нет смысла париться с правами и инвалидацией

производительность сопоставима в обоих случаях
оба позволяют указывать nologging
где же грань?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460806
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
полей в таблице - 22, почти все текстовые, lob нет. индексов - 8
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460811
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грань злаВячеслав ЛюбомудровСможешь продемонстрировать, когда хотя бы отстает?CTAS может быть полезен в случаях когда интересует сжатие т.к. дает возможность отсортироватьТут можно согласиться (хотя, естественно, у аффтара не тот случай), но тоже с оговорками -- по собственному опыту: делал просто MOVE COMPRESS и CTAS ... COMPRESS ... SORT, разница 5-10%, но это мои данные и мой опыт
Грань злаMOVE может быть полезен когда нет смысла париться с правами и инвалидациейинвалидация тут не причем, а вот перевешивание и проверка всех ограничений (включая CHECK, например, не говоря уж о кучи FOREIGN KEY) есть вполне себе измеримая разница по времени
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460814
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грань злапроизводительность сопоставима в обоих случаях
оба позволяют указывать nologging
где же грань?Разница в трудозатратах (как необходимость ничего не забыть, так и изучать, а возможно, и тестировать новые конструкции)
MOVE+REBUILD банально проще, а результат не хуже
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460815
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SHRINK в этом отношении еще проще
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460816
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВодолейВячеслав Любомудров,
пробовал insert с хинтом /*+APPEND*/ но толку нет. также все медленноА каким оператором (интересует SELECT-часть)?
Нет ли там у тебя завязки на твою многострадальную таблицу?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460818
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
да простой insert /*+APPEND*/ into journal select * from tempo
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460822
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и?
Ты уверен, что тормозит именно вставка, а не выборка?

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

PS. И еще маленький советик -- после /*+ ставь пробел, иначе хинт может игнорироваться, была такая бага в SQL, вызываемого из PL/SQL в ранних версиях, но может у тебя 10.2.0.1 и оно тоже попадает
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460825
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
уверен, что тормозит именно целевая таблица. Таблица tempo пересоздается каждый раз при поступлении данных. И данные с неё отлично раньше переносились в основную таблицу
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460827
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я нихрена не понял -- проблема у тебя или у меня?
Зачем ты мне что-то пытаешься объяснить (оценочными суждениями)?

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

Почему это может происходить -- тебе уже сказали
Как влияние этого можно уменьшить -- уже сказали

PS. Простая проверка, что APPEND работает, это до коммита попробовать выборку из этой-же (куда вставляется) таблицы
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460865
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
commit после чистки мусора сделал?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460928
Nobody1111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DВАcommit после чистки мусора сделал?
это пять )))
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460990
д0kХ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровSHRINK в этом отношении еще проще

+1
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39460991
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАcommit после чистки мусора сделал?Вот честно, вертелся такой же вопрос, но я как-то постеснялся
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39461013
Йун Га
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровDВАcommit после чистки мусора сделал?Вот честно, вертелся такой же вопрос, но я как-то постеснялся
напомните, что происходит в безкомитном состоянии
благодарочка
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39461022
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав ЛюбомудровDВАcommit после чистки мусора сделал?Вот честно, вертелся такой же вопрос, но я как-то постеснялся

издеваетесь? конечно, коммит был.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39461234
trace.log
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВодолейВячеслав Любомудровпропущено...
Вот честно, вертелся такой же вопрос, но я как-то постеснялся

издеваетесь? конечно, коммит был.

тогда снимать трассировку или AWR отчет, чтобы знать где происходит тупняк.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39462598
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
trace.logтогда снимать трассировку или AWR отчет, чтобы знать где происходит тупняк.

В общем - трассировку я снял.
Получилось следующие:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
INSERT /*+ APPEND */ INTO MAINTABLE SELECT DISTINCT * FROM TEMP4_0


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        0      0.00       0.00          0          0          0           0
Execute      1      7.87    2568.66      51994       5259     223887       18124
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        1      7.87    2568.66      51994       5259     223887       18124

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  db file sequential read                     25330        5.30       1012.27
  log file switch completion                      3        0.61          0.89
  log buffer space                                3        0.12          0.33
  SQL*Net message to client                       1        0.00          0.00
  SQL*Net message from client                     1        0.00          0.00


Судя по файлу трассировки все ожидания находятся в трех файлах.
Таблица DBA_EXTENTS показала что это файлы локальных индексов для партиции в которую вставляются данные.
Получается все ожидание упирается на индексы.

INDEX REBUILD локального индекса решит проблему?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39462765
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. ни дефрагментации таблицы, ни перестройки индексов ты не делал?
И херачишь с +APPEND, чтоб уменьшить влияния вставки в освободившееся место в таблице (да-да, вот только с индексами такая фишка не пролезет)?

Красава
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39462766
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
А что не так? Можно чуток подробнее ответить?
Зачем дефрагментировать таблицу если затык на уровне индексов?
И почему такая проблема возникла с индексами?
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39462774
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что ты вставляешь с +APPEND, то ты не переиспользуешь освободившееся место в таблице. Всегда пишешь выше HWM, поэтому на таблице задержек нет.
С индексами такой фокус не пролезет -- он структура упорядоченная и поэтому будут вставки и в середину блока, и расщепления блоков и т.д. (если у тебя индексные значения будут монотонно возрастать/убывать, то это оказывает меньше влияния. Но таких индексов, как правило, только 1 -- первичный ключ их последовательности )
Собственно, поэтому на период больших загрузок индексы советуют отключать, а после загрузки перестраивать.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39462775
Водолей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
Спасибо за ответ!
В общем Rebuild локальных индексов должен помочь в моей беде.
...
Рейтинг: 0 / 0
Упала скорость вставки записей после чистки таблицы
    #39465002
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йун ГаВячеслав Любомудровпропущено...
Вот честно, вертелся такой же вопрос, но я как-то постеснялся
напомните, что происходит в безкомитном состоянии
благодарочка
в безкомитном состоянии глобальный делит может пометить кучу блоков битмап-карты сегмента как свободные, когда по факту они еще заняты. Инсерты будут долго тыкаться по якобы свободным блокам наращивая логические чтения пока наконец не найдут реально свободный.
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Упала скорость вставки записей после чистки таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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