понедельник, 26 марта 2012 г.

DB2 8.2. Оптимизация

Добрый вечер,
Сегодня расскажу пару слов об оптимизации СУБД DB2 8.2.

Итак, для начала необходимо проводить следующие процедуры для поддержания СУБД в рабочем состоянии:
1) сбор статистики,
2) реорганизация таблиц и индексов,
3) обновление статистики,
4) ребиндинг хранимых процедур.

Что касается обновления статистики, то в сети можно найти скрипты по сбору статистики в DB2.
То же самое касается и реорганизации данных. 

Ребиндинг можно делать с помощью команды db2rbind <имя бд> -l <лог файл> all.
Правда названная выше команда может корректно выполнится если никто не использует хранимые процедуры в настоящий момент, поэтому эту команду необходимо выполнять в оффлайн режиме.

Также, если у нас DB2 стоит на линуксе с ядром серии 2.6, то можно выставить следующие параметры:
db2set DB2LINUXAIO=true
db2set DB2_SCATTERED_IO=ON
db2set DB2_DIRECT_IO=YES
 
После выставления параметров необходимо перезапустить db2.
Начиная с версии 9 параметр DB2_DIRECT_IO использовать не рекомендуется.
 
Также отключить кеширование можно на уровне табличного пространства. Это делается с 
помощью команды 
ALTER TABLESPACE <имя табличного пространства> NO FILE SYSTEM CACHING; 
 
После выполнения команды ALTER TABLESPACe существующие соединения с БД необходимо закрыть,
чтобы новые правила кеширования вступили в силу. 

 
Однако в боевой системе это делать стрёмно - куда проще поменять параметр среды и 
рестартовать СУБД.
 
Это хороший старт для дальнейшей оптимизации БД.

Комментариев нет:

Отправить комментарий