Показаны сообщения с ярлыком оптимизация. Показать все сообщения
Показаны сообщения с ярлыком оптимизация. Показать все сообщения

понедельник, 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 существующие соединения с БД необходимо закрыть,
чтобы новые правила кеширования вступили в силу. 

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