четверг, 24 мая 2007 г.

Конфигурируем тестовый сервер - часть 1

Итак, вы выбрали самый современный (здесь и далее речь идет о 9.4 или 10 версии Информикса если не сказано иначе) и самый быстрый а также самый нетребовательный к ресурсам сервер баз данных Информикс и установили его. С чего начать? Конечно же с конфигурации и запуска тестового экземпляра!
Если Информикс установлен в Windows, то конфигуратор должен был предложить в процессе установки создание экземпляра Информикса, и фактически этот раздел можно пропустить (что я все равно делать не советую). Если вы ставили Информикс в Linux или другой *nix ОС, то обязательно читайте дальше.

Во первых, чтобы получить доступ к Информиксу из консоли (в Linux или Windows, о сервисе Windows напишу позже) требуется прочитать документацию установить ряд переменных окружения для текущего подключения. Вот основные переменные:

INFORMIXDIR - полное путевое имя каталога установки Информикса, например /informix/infx10uc6
INFORMIXSERVER - имя экземпляра Информикса например ids_10uc6
ONCONFIG - название конфигурационного файла (без полного пути!) например onconfig.ids_10uc6
PATH - путь к исполняемым файлам в т.ч. Информикса
CLIENT_LOCALE - локаль клиентского приложения, например ru_ru.1251

В Linux значение переменной например ставим так:
export INFORMIXDIR=/informix/infx10uc6

в Windows
set INFORMIXDIR=C:\Informix

Чтобы устанавливать окружение в консоли для нужного сервера Информикс быстро, рекомендую записать окружение в текстовый файл tst_on.env в домашнем каталоге информикса, и выдать разрешение на запуск chmod u+x tst_on.env
Теперь достаточно после подключения на сервер консолью применить окружение выполнив скрипт:
. tst_on.env
и после этого будет доступно управление экземпляром.

В Windows как я писал выше, процесс конфигурирования нового экземпляра Информикса немного отличается от Linux. Связано это с тем, что в виндах экземпляр информикса выполняется как сервис, поэтому для создания экземпляра необходимо использовать программу Server Instance Manager которая вызывается из меню "Пуск" после установки Информикса. После создания экземпляра в группе программ Информикса появится ярлык консоли с готовым окружением нового сервера. При необходимости это окружение можно посмотреть и модифицировать, оно находится в каталоге установки Информикса в файле имя_сервера.cmd

Теперь, когда окружение для экземпляра установлено, необходимо сконфигурировать некоторые параметры информикса, чтобы запустить его. Вторая часть будет посвящена базовой конфигурации Информикса.

Во второй части поговорим о конфигурации информикса.

среда, 16 мая 2007 г.

Упреждающее чтение

Когда пользовательская нить читает данные, сначала она ищет необходимые ей страницы с данными в буферном пуле. Затем, если требуется, и не все данные оказались в буферах, нужные страницы с данными подгружаются в буферный пул с диска. Наиболее эффективное чтение происходит, когда сервер читает данные с диска не по отдельным страницам, а блоками по несколько страниц. Такое поведение в Информиксе реализовано, когда происходит последовательное сканирование таблицы или индекса в поисках нужных данных. Называется оно упреждающим чтением (Read Ahead). Можно настроить Информикс на чтение блоками по заданному кол-ву страниц, для этого служат параметры

RA_PAGES # Кол-во страниц упреждающего чтения
RA_THRESHOLD # Кол-во страниц которые не обработаны, и после которого начинается новое чтение

Условие использования упреждающего чтения - это последовательное сканирование. Если сервер выбрал для запроса последовательное сканирование, то будет включено упреждающее чтение для запроса.

Следующий этап оптимизации - это легкое сканирование или Light Scans. При таком типе чтения буферный пул Информикса не используется. Вместо него выделяется специальный пул в виртуальном сегменте, в который и производятся чтения большими блоками страниц. Light Scans имеет преимущество в том смысле что не вытесняются другие страницы из буферного пула, что позволяет не снижать производительность запросов к таблицам при чтении больших таблиц.

Условия для включения Light Scans в сессии:
- оптимизатор выбирает последовательное сканирование
- кол-во страниц в таблице больше чем число буферов в буферном пуле
- уровень изоляции сессии Dirty Read, Repeatable Read, Commited Read

Чтобы узнать, использует ли сессия Light Scans следуеть посмотреть вывод onstat -g ses sesid, раздел Memory pools, там могут быть пулы light_scan, lt_scan_rbuff, lt_scan_bufs. Или посмотреть выделенные фрагменты для пула с помощью onstat -g afr sesid (там может быть пул с именем light_scan). Далее можно посмотреть вывод команды onstat -g lsc.

Размер буферов для Light Scans вычисляется вот так:

( ( RA_PAGES + RA_THRESHOLD)/(MAXAIOSIZE + PAGESIZE))

понедельник, 7 мая 2007 г.

Где хранятся данные или немного терминов

Данные хранятся на дисках, где же еще :)

Вообще все базы данных, таблицы и индексы а также хранимые процедуры Информикс хранит в "контейнерах" на дисках (в файлах или на неразмеченных областях диска), логическая единица хранения это dbspace.
DbSpace - это то место где находятся таблицы или индексы баз данных. Он состоит из одного или нескольких файлов (или неразмеченных устройств), которые называются чанками (chunk). На сервере может быть много dbspace. Понятно что один чанк может принадлежать только одному dbspace. По мере заполнения dbspace данными к нему добавляются администратором сервера новые чанки.

Лирическое отступление. Раньше размер чанка был ограничен 2 Gb, и несмотря на то что чанков в dbspace может быть очень много, это создавало определенные неудобства в средних и больших базах. Начиная с версии IDS 9.30 это ограничение снято, и теперь отдельный чанк может иметь размер хоть 100 гигабайт и даже больше. Ну а dbspace при этом может и вовсе быть на сотни терабайт.

среда, 2 мая 2007 г.

Informix - где скачать

Чтобы попробовать информикс в деле, его можно скачать здесь Informix Dynamic Server Enterprise Edition V10.0 (триальная 90-дневная полнофункциональная версия v10 ) варианты для платформ AIX, HP, Linux, Solaris, Windows.

Вместе с дистрибутивом идет документация по установке СУБД. Для установки требуется 750 Мб дискового пространства, 256 Мб (заявленный минимум, но ставиться и работает и при меньшем объеме) оперативной памяти.

Если хочется иметь бесплатный Информикс без ограничений на время работы, то можно скачать вариант IDS 10 Workgroup Edition с ограничением на кол-во одновременных подключений с сайта Интернациональной группы пользователей Информикс (предварительно там надо зарегистрироваться). Версия предлагаемая членам IIUG бесплатна, не имеет ограничения на время работы, и есть ограничение не более 5 одновременных подключений. Предлагаются варианты для всех распространенных платформ.

Дополнение от 18.02.2008
Вышла девелоперская версия информикса, которую можно использовать бесплатно. Подробно читать здесь: IDS Cheetah Developer Edition

Дополнение от 24.11.2011
Бесплатную (в т.ч. для промышленного использования) версию Informix Innovator-C можно скачать здесь Innovator-C Edition (требует регистрации на сайте). Доступны версии для разных платформ.