powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Непонятки с admin_move_table
10 сообщений из 10, страница 1 из 1
Непонятки с admin_move_table
    #38339453
Larry E.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здрасте.

После удаления части данных, переносим таблицу (1.5 млрд. строк) в другой tablespace. В начале процесс пошел быстренько, но через какое то время ОЧЕНЬ замедлился. Как выяснить причину такого замедления ? Нужен совет. Спс.
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38339549
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Larry E.,

А из чего видно, что он пошёл сначала быстренько?
- load виден в "db2 list utilities show detail"
- видно по мониторам сколько select нафетчил
- .....
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38340951
Larry E.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

За процессом переноса наблюдали, обращаясь к SYSTOOLS.ADMIN_MOVE_TABLE:

SELECT key, varchar(value,64) as value FROM SYSTOOLS.ADMIN_MOVE_TABLE WHERE tabname = 'CKMI1' WITH UR

KEY VALUE
-------------------------------- ----------------------------------------------------------------
AUTHID SAPERP
COPY_OPTS OVER_INDEX,ARRAY_INSERT,WITH_INDEXES,NON_CLUSTER
COPY_START 2013-06-27-13.12.10.289141
COPY_TOTAL_ROWS 886600000
INDEXNAME CKMI1~0
INDEXSCHEMA SAPERP
INDEX_CREATION_TOTAL_TIME 1
INIT_END 2013-06-27-13.12.08.899482
INIT_START 2013-06-27-13.12.06.264154
LOCK 2013-06-27-13.12.09.343390
PAR_COLDEF using a supplied target table so COLDEF could be different
STAGING CKMI1AASAHBs
STATUS COPY
TARGET QCM8CKMI1
VERSION 09.07.0007

за сутки перенеслось 400 миллионов записей, потом в течении ~ 20 дней еще столько же. Были таблицы по 3 млрд. записей, их перенос занимал - 4 дня !
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38341234
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Larry E.,

Посмотреть, чем оно там занимается, можно любыми средствами мониторинга. По вкусу.
Одно из простых наглядных средств - db2mon

Если с вводом/выводом в системе всё хорошо (соответствующие диски нагружены), то я бы посмотрел на статистику по buffer pool logical/physical reads индекса(ов) target таблички - POOL_INDEX_L_READS/POOL_INDEX_P_READS MON_GET_CONNECTION() (или на уровне табличного пространства/UOW)

Если POOL_INDEX_P_READS велико (в динамике), плюс ROOT_NODE_SPLITS и INT_NODE_SPLITS ( MON_GET_INDEX() ) существенны, то вполне возможно, тормоза - следствие опции COPY_WITH_INDEXES.
С какого-то момента массовый insert порождает существенную работу по перестроениям индекса.
Если параметр LOGINDEXREBUILD не включён (что может потребоваться для HADR конфигурации), то лучше опцию убрать и построить индексы после. Вообще, индексов на таблице много?

Другой вариант - таблица упёрлась в размер табличного пространства, а INCREASESIZE у него очень мал.


BTW А почему не используется COPY_USE_LOAD опция? Это будет не на один порядок быстрее.
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38341489
Larry E.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

Хм, спасибо. Буду разбираться.
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38341723
Larry E.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

К вопросу о индексах. Есть два индекса ,статистика по по ним:

INDNAME INDEX_SCANS INDEX_ONLY_SCANS
---------- -------------------- --------------------
CKMI1~0 1310578984 1310578982
CKMI1~1 3 3

INDNAME CLUSTERRATIO STATS_TIME
---------------- ------------ --------------------------
CKMI1~0 1 2013-07-19-15.29.21.831405
CKMI1~1 98 2013-07-19-15.29.21.831405
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38342292
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Larry E.,

Ну вот оно явно при вставке использует первый индекс. Он, надо полагать, уникальный.
Т.е. при вставке на каждую строку необходимо найти соответствующую страницу в индексе, вытащить, возможно разделить на две, и сделать туда вставку.
С какого-то момента индекс мог перестать влезать в буфферпул и начать сам себя вытеснять при работе, что должно приводить к увеличению физических чтений страниц индекса (POOL_INDEX_P_READS) и соответствующему резкому замедлению процесса вставки.

Вопрос, кстати, достаточно ли ADMIN_MOVE_TABLE() сообразительна, чтобы на время загрузки переключить таблицу в APPEND mode (можно посмотреть db2look'ом, примерно так - "db2look -d <dbname> -e -t SAPERP.CKMI1AASAHBs -nofed -o SAPERP.CKMI1AASAHBs.ddl").
Боюсь, что недостаточно, что тоже увеличит время вставки.

Можно попробовать увеличить буфферпул, в котором живут индексы новой таблицы.
Но правильней, конечно, остановить это недоразумение и перезапустить с опцией COPY_USE_LOAD. Все большие таблицы стоит копировать только так. Если нет планов сразу после копирования делать бэкап базы, то использовать дополнительно COPY YES ....
COPY_WITH_INDEXES оставить - LOAD индексы в один проход во временных табличных пространствах строит, потом поочереди целиком копирует.
Время копирования будет раза в два больше, чем
Код: sql
1.
export to /dev/null of ixf select * from SAPERP.CKMI1



Или раз в 20 дольше
Код: sql
1.
export to /dev/null of ixf select * from SAPERP.CKMI1 fetch first 150000000 rows only


fetch first, наверное, лучше использовать, чем TABLESAMPLE clause, поскольку тот работает или на уровне строк или страниц, что, возможно, не даст включиться механизму prefetch и выдаст неверное время.
Если строки по таблице сильно отличаются в размере, то лучше "TABLESAMPLE SYSTEM (10)", но это, кстати, теоретически тоже может быть причиной изменения скорости копирования.

Можно попробовать не прерывая текущего копирования, что грубо даст оценку времени (даст понять, стоит ли ждать ещё с месяц).

PS В таблице есть LONG/LOB поля? Таблица партиционированная? Компрессированная?
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38342579
Larry E.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

В таблице нет LONG/LOB, не партиционированная, не компрессированная. Тут идея шустрая появилась, остановить перенос (или в процессе переноса) грохнуть индекс CKMI1~0, смущает низкий процент CLUSTERRATIO по нему. Вопрос в том как на это отреагирует admin_move_table ?


ibm CLUSTERRATIO information indicates the degree to which the table data is clustered in relation to this index. The higher the number, the better the rows are ordered in index key sequence. If table rows are in close to index-key sequence, rows can be read from a data page while the page is in the buffer.

The degree to which the data is clustered can have a significant impact on performance, and you should try to keep one of the indexes that are defined on the table close to 100 percent clustered
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38342852
CawaSPb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Larry E.,

Удаление индекса скорее всего вернёт начальную скорость.
Но по завершении admin_move_table переименовывает индексы в соответствии с их оригинальными именами. Что произойдёт, когда оно индекса не обнаружит, сказать сложно, поэксперементируйте где-нибудь с небольшой табличкой.

CLUSTERRATIO сам по себе не будет хорошим, если на исходной таблице не было кластерного индекса. Если нету, то необходимо процесс копирования/move разбивать на фазы INIT/COPY/REPLAY/SWAP, и после INIT с помощью ADMIN_MOVE_TABLE_UTIL() указывать схему и имя индекса, по которому будет производиться упорядочивание. Это, соответственно, замедлит перенос.

PS Я бы ещё раз порекомендовал подумать об использовании LOAD'а.
...
Рейтинг: 0 / 0
Непонятки с admin_move_table
    #38343688
Larry E.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CawaSPb,

Пробуем, по результатам отпишусь.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Непонятки с admin_move_table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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