Шаг 120 - Табличные пространства - Системы БД DSS и другие

Продолжаем наш разбор по теме систем хранения информации в БД. Итак, системы DSS.

В системах данного типа, как правило, используются довольно большие и старые базы данных, которые обычно используют "только для чтения". По этому основным видом работы с ними является создание запросов на выборку. Как мы с вами упоминали ранее, для чтения блока Oracle следует считывать сразу же максимально возможное количество строк. При этом рекомендуется считывать максимально возможное количество смежных блоков, так как DSS - запросы, как правило, требуют полного сканирования таблицы БД, а эта операция по самой своей природе является последовательной как вы должны знать. Таким образом при работе с DSS экземплярами необходимо для параметров DB_BLOCK_SIZE и DB_FILE_MULTIBLOCK_READ_COUNT указывать максимально возможные значения. Так же в коде DSS приложений не следует использовать связующие переменные, эта рекомендация находиться в прямом противоречии с OLTP-системами, где требовалось сократить накладные расходы (синтаксический анализ) связанный с работой приложений. Типичным примером DSS системы может служить любой портал библиотеки. Например, сайт большой энциклопедии "РОЛ" вот тут http://www.krugosvet.ru! Я, вообще поразился, как нужно было набраться терпения и все это сделать! Просто молодцы ребята! Я ей часто пользуюсь и вам рекомендую, очень полезно! Давайте проведем небольшое сравнение особенностей OLTP и DSS систем.

Для оптимизации работы OLTP и DSS систем, могут быть использованы параметры уровня блока INITRANS и PCTFREE. Так для OLTP систем значение параметра PCTFREE, следует устанавливать относительно не большим, так как каждый блок должен иметь свободное пространство для изменения и роста. Для DSS систем работающих на чтение значение параметра PCTFREE, следует устанавливать достаточно высоким, так как данные в блоках остаются преимущественно статичными. Для OLTP систем значение параметра INITRANS следует установить на относительно высоком уровне, поскольку увеличение количества параллельно работающих пользователей приведет к динамическому расширению, слота заголовка транзакции и последующей реорганизации на уровне блоков, которая может распространиться, вплоть до уровня экстентов! Так же для DSS систем существует значительная вероятность того, что параллельно работающие пользователи, будут находиться в состоянии ожидания из-из блокировки вызванной множеством транзакций. Следовательно для параметра INITRANS нужно установить значение на некотором среднем уровне, если изменения таблиц БД происходят не слишком часто. В противном случае необходимо оставить параметр по умолчанию.

Вот таким образом устроены наиболее часто применяемые типы хранилищ данных в БД Oracle. Существуют так же и другие типы, например OLAP, VCDB и так называемые пакетные типы. Какой тип хранилища выбрать, это ваше право, но укажу на момент анализа поставленной задачи и соответственно выбора типа экземпляра. Не стоит, например для работы со статистикой обтекаемости плоскости истребителя в разных режимах, продувки в аэродинамической трубе применять DSS тип хранилища. И т. д. Надеюсь теперь вам стало яснее как внутренне подразделяются экземпляры БД в целом и экземпляры БД Oracle в частности. Далее продолжим.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 05.04.2004