Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Здравствуйте всем!

Существует приложение, работающее с базой DB2 WSE 9.7.6. Ночью на базе выполняются регламентные работы - реорганизация таблиц и индексов, затем сбор статистики и обновление статистики. При этом приложение останавливается. Хочу нечто подобное выполнять днем, но не останавливая работу приложения.

Меня интересует, могу ли я запускать reorg, runstat и reorgchk, не останавливая работу приложения? Не навешивают ли указанные команды блокировки на таблицы или индексы? Сейчас я понял, чтобы запустить reorg table или reorg indexes all for table мне нужно воспользоваться дополнительной опцией allow write и тогда получаются команды:
REORG TABLE <TABNAME> INPLACE ALLOW WRITE ACCESS;
REORG INDEXES ALL FOR TABLE <TABNAME> ALLOW WRITE ACCESS;

А вот насколько будут мешать приложению команды
runstats on table <TABNAME> with distribution and detailed indexes all;
reorgchk update statistics on table <TABNAME>;
?

Насколько я знаю, runstats on table не создает блокировки на таблицах, а вот насчет reorgchk update statistics on table возникают сомнения.

Подскажите, как сделать правильно?

С уважением, Семен Попов
9 июн 14, 10:55    [16140840]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov,

Здравствуйте.

Почитайте про Inplace (online) table reorganization, там есть и про блокировки.
Замечания:
1. Используйте REORG TABLE ... NOTRUNCATE, если не хотите табличную S блокировку в конце операции.
2. Используйте по возможности REORG INDEXES ALL ... CLEANUP ONLY [PAGES], если не хотите Z блокировку в конце операции.
Какую именно опцию использовать - зависит от того, по какой формуле поднимается флаг командой reorgchk.
F5, F6 - рекомендация запускать без CLEANUP
F7 - можно CLEANUP ONLY
F8 - можно CLEANUP ONLY PAGES

runstats и reorgchk update statistics не должны мешать транзакциям.
9 июн 14, 13:57    [16142340]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Mark Barinstein, спасибо. А важен ли порядок выполнения операций? Порядок REORG TABLE, REORG INDEXES ALL FOR TABLE, RUNSTATS, REORGCHK правильный? Из вашего сообщения я понял, что исходя из данных, полученных reorgchk, мы должны запустить REORG с теми или иными опциями. Правильно?
16 июн 14, 17:27    [16171080]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov
А важен ли порядок выполнения операций? Порядок REORG TABLE, REORG INDEXES ALL FOR TABLE, RUNSTATS, REORGCHK правильный? Из вашего сообщения я понял, что исходя из данных, полученных reorgchk, мы должны запустить REORG с теми или иными опциями. Правильно?
16 июн 14, 21:46    [16172165]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov
А важен ли порядок выполнения операций? Порядок REORG TABLE, REORG INDEXES ALL FOR TABLE, RUNSTATS, REORGCHK правильный? Из вашего сообщения я понял, что исходя из данных, полученных reorgchk, мы должны запустить REORG с теми или иными опциями. Правильно?
Да, правильно.

Порядок:
1. reorgchk с
UPDATE STATISTICS (это умолчание команды), если статистику надо обновить
или
CURRENT STATISTICS, если статистика свежая
2. REORG TABLE, если надо
3. REORG INDEXES ALL, если надо.
16 июн 14, 21:51    [16172178]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Mark Barinstein, нужно ли обновлять статистику, если в базе включено автоматическое обслуживание?

Автоматическое обслуживание (AUTO_MAINT) = ON
Автоматическое обслуживание таблиц (AUTO_TBL_MAINT) = ON
Автоматический запуск runstats (AUTO_RUNSTATS) = ON

Mark Barinstein
Порядок:
1. reorgchk с
UPDATE STATISTICS (это умолчание команды), если статистику надо обновить
или
CURRENT STATISTICS, если статистика свежая
2. REORG TABLE, если надо
3. REORG INDEXES ALL, если надо.
Прямо некий командный файл напрашивается. Может это можно обернуть в единый командный файл, в котором бы собиралась статистика, проводился анализ и исходя из полученной статистики запускался или не запускался реорг? Я думаю, в форуме уже есть профи, которые этим занимались. Не могли бы поделиться?
17 июн 14, 10:46    [16174013]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Mark Barinstein ,

18.06.2014 13:11:32 REORG TABLE PAYSUM.REGISTER INPLACE ALLOW WRITE ACCESS NOTRUNCATE TABLE
18.06.2014 13:11:32 SQL2219N  Указанное действие по реорганизации таблицы INPLACE в отношении "PAYSUM.REGISTER" не разрешено на одном или нескольких узлах. Код причины : "9".

насколько это серьезно?

Похоже, забыл указать еще одну опцию из START, STOP, PAUSE, RESUME
18 июн 14, 15:39    [16183166]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov,

+ db2 "? SQL2219N"


SQL2219N The specified INPLACE table reorganization action on table
"<table-name>" is not allowed on one or more nodes. Reason code:
"<reason-code>".

Explanation:

The statement cannot be processed because it violates a restriction as
indicated by the following reason code:

...
9 START is not allowed as a prior paused table reorganization has
not been stopped.
...

User response:
...
9 A reorg on the table has been paused. Either RESUME the paused
reorg or STOP then START the reorg.
...
18 июн 14, 16:06    [16183485]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Mark Barinstein, про ошибку я сразу почитал. Меня интересует, если во время работы приложения была запущена реорганизация с опцией NOTRANCATE TABLE, которая свалилась в эту ошибку, она никак не повлияет на работу приложения? Если оставить таблицу в таком состоянии, не будет проблем? Не нужно ли после этой ошибки снова запустить команду и завершить реорганизацию?
19 июн 14, 18:09    [16191388]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
Semen Popov
Mark Barinstein, про ошибку я сразу почитал. Меня интересует, если во время работы приложения была запущена реорганизация с опцией NOTRANCATE TABLE, которая свалилась в эту ошибку, она никак не повлияет на работу приложения? Если оставить таблицу в таком состоянии, не будет проблем? Не нужно ли после этой ошибки снова запустить команду и завершить реорганизацию?
Судя по коду ошибки, у вас на эту таблицу уже была ранее запущена реорганизация, но она была поставлена на паузу.
Поэтому запускать новую нельзя, но предлагается либо продолжить, либо перезапустить (stop/start) ту, которая на паузе.
Наверное, вам лучше пользоваться представлением SYSIBMADM.SNAPTAB_REORG для определения, какую именно команду реорганизации надо запускать для конкретной таблицы.
Вы не обязаны завершать реорганизацию, поставленную на паузу, но по-хорошему это надо делать.
На ваше приложение полученная ошибка никак не должно влиять.
20 июн 14, 15:43    [16196139]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Semen Popov
Member

Откуда: Сыктывкар
Сообщений: 793
Mark Barinstein, большое спасибо
23 июн 14, 14:02    [16206447]     Ответить | Цитировать Сообщить модератору
 Re: reorg table, runstat on table и reorgchk update statistic on table в рабочее время  [new]
Chumakov_JA
Member

Откуда:
Сообщений: 234
Semen Popov,

дай свой корп тел

мой 8717821

Бьемся над этой-же проблеммой
1 июл 14, 00:05    [16241298]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить