Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
Здрасте. После удаления части данных, переносим таблицу (1.5 млрд. строк) в другой tablespace. В начале процесс пошел быстренько, но через какое то время ОЧЕНЬ замедлился. Как выяснить причину такого замедления ? Нужен совет. Спс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 17:26 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
Larry E., А из чего видно, что он пошёл сначала быстренько? - load виден в "db2 list utilities show detail" - видно по мониторам сколько select нафетчил - ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2013, 18:20 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
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 дня ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 17:08 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
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 опция? Это будет не на один порядок быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 19:48 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
CawaSPb, Хм, спасибо. Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 00:25 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 11:05 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
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. Или раз в 20 дольше Код: sql 1. fetch first, наверное, лучше использовать, чем TABLESAMPLE clause, поскольку тот работает или на уровне строк или страниц, что, возможно, не даст включиться механизму prefetch и выдаст неверное время. Если строки по таблице сильно отличаются в размере, то лучше "TABLESAMPLE SYSTEM (10)", но это, кстати, теоретически тоже может быть причиной изменения скорости копирования. Можно попробовать не прерывая текущего копирования, что грубо даст оценку времени (даст понять, стоит ли ждать ещё с месяц). PS В таблице есть LONG/LOB поля? Таблица партиционированная? Компрессированная? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 15:17 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 17:19 |
|
||
|
Непонятки с admin_move_table
|
|||
|---|---|---|---|
|
#18+
Larry E., Удаление индекса скорее всего вернёт начальную скорость. Но по завершении admin_move_table переименовывает индексы в соответствии с их оригинальными именами. Что произойдёт, когда оно индекса не обнаружит, сказать сложно, поэксперементируйте где-нибудь с небольшой табличкой. CLUSTERRATIO сам по себе не будет хорошим, если на исходной таблице не было кластерного индекса. Если нету, то необходимо процесс копирования/move разбивать на фазы INIT/COPY/REPLAY/SWAP, и после INIT с помощью ADMIN_MOVE_TABLE_UTIL() указывать схему и имя индекса, по которому будет производиться упорядочивание. Это, соответственно, замедлит перенос. PS Я бы ещё раз порекомендовал подумать об использовании LOAD'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 20:29 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38343688&tid=1601381]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 171ms |

| 0 / 0 |
