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

воскресенье, 15 февраля 2015 г.

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

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

суббота, 3 марта 2012 г.

Trac + Fedora 12 + MySQL

Версии компонентов:
Trac 0.12.3
MySQL 5.1.47-2
Russian Fedora 12

При попытке создать проект Trac, который будет хранить данные в MySQL вываливается вот такая ошибка:
unsupported operand type(s) for /: 'int' and 'NoneType'
Traceback (most recent call last):
File "build/bdist.linux-i686/egg/trac/admin/console.py", line 437, in do_initenv
  options=options)
File "build/bdist.linux-i686/egg/trac/env.py", line 214, in __init__
  self.create(options)
File "build/bdist.linux-i686/egg/trac/env.py", line 402, in create
  DatabaseManager(self).init_db()
File "build/bdist.linux-i686/egg/trac/db/api.py", line 146, in init_db
  connector.init_db(**args)
File "build/bdist.linux-i686/egg/trac/db/mysql_backend.py", line 106, in init_db
  for stmt in self.to_sql(table, utf8_size=utf8_size):
File "build/bdist.linux-i686/egg/trac/db/mysql_backend.py", line 155, in to_sql
  utf8_size=utf8_size))
File "build/bdist.linux-i686/egg/trac/db/mysql_backend.py", line 119, in _collist
  limit_col = 767 / utf8_size
TypeError: unsupported operand type(s) for /: 'int' and 'NoneType'

В общем, не удалось подружить Trac и MySQL.
Необходимо  проверить как поведёт себя Trac и PosgreSQL.