Управление пространством в базе данных. Выделение, освобождение и размер экстентов, страница 3

Параметры хранения устанавливаются для:

·  таблиц;

·  кластеров;

·  индексов;

·  сегментов отката;

·  табличных пространств.

Если Вы явно указываете параметры хранения при создании объекта базы данных, для управления процессом выделения экстентов для соответствующего сегмента буду использоваться именно эти параметры, независимо от того, были ли определены параметры хранения по умолчанию для табличного пространства.

Если при создании объекта базы данных параметры хранения не указаны, для управления выделением экстентов будут использоваться параметры хранения по умолчанию, определенные на уровне табличного пространства.

Если на уровне табличного пространства параметры хранения не установлены, используются значения по умолчанию, определенные для сервера Oracle.

Параметры хранения (кроме INITIAL, MINEXTENTS и FREELIST GROUPS), заданные для объектов базы данных и табличных пространств, можно менять и после их создания. Измененные параметры будут влиять только на экстенты, выделяемые после изменения значений параметров.

Управление пространством внутри сегментов

Для определения того, является ли блок базы данных, выделенный сегменту, доступным для вставки новых строк, Oracle может использовать автоматический или ручной способ управления пространством сегмента. Когда Вы создаете локально управляемое табличное пространство, Вы можете с помощью предложения SEGMENT SPACE MANAGMENT указать способ управления пространством внутри сегмента:

·  AUTO – автоматическое управление пространством сегмента;

·  MANUAL – ручное управление пространством сегмента.

В табличном пространстве, управляемом по словарю, для управления пространством блоков может использоваться только ручной способ управления пространством.

Автоматическое управление пространством сегмента

Пространство внутри сегмента управляется с помощью битовой матрицы (bitmap). Каждый сегмент, пространство которого управляется автоматически, поддерживает несколько блоков, содержащих битовую матрицу (обычно первые три блока, четвертый – заголовок сегмента). Битовая матрица представляет собой матрицу, описывающую состояние каждого блока данных внутри сегмента по отношению к общему количеству пространства блока, доступного для вставки строк. Как только количество свободного пространства блока меняется, новое состояние блока отображается в битовой матрице. Битовая матрица позволяет Oracle автоматически управлять свободным пространством.

Автоматический способ управления пространством сегмента имеет ряд преимуществ:

·  прост в использовании;

·  лучше использует пространство, особенно для объектов, имеющих непостоянный размер строк;

·  улучшает производительность при одновременном доступе к блоку данных.

Ручное управление пространством сегмента

Пространство внутри сегмента управляется с помощью списка свободных блоков. При таком способе управления используются специальные параметры использования пространства блоков (data block space usage parameters).

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

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

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

Параметр

Описание

PCTFREE

Устанавливает процент доступного пространства блока данных, резервируемого для возможного обновления строк таблицы (по умолчанию – 10)

PCTUSED

Задает минимальный процент использования пространства блока данных. Когда процент использования опускается до значения PCTUSED, блок становится доступным для включения новых строк (по умолчанию – 40)

INITRANS

Начальное количество входов транзакций, резервируемое в заголовке блока данных

MAXTRANS

Максимальное количество одновременных транзакций, обновляющих один и тот же блок

Параметры использования пространства блоков задаются для:

·  таблиц;

·  кластеров;

·  индексов (кроме PCTUSED).

PCTFREE и PCTUSED

Свободное пространство в блоках данных заполняется при вставке новых строк, увеличении размера существующих и увеличении размера заголовка. Параметры использования пространства блоков PCTFREE и PCTUSED позволяют управлять использованием свободного пространства блоков данных для вставки или обновления строк в блоках данных.

Если возникает необходимость записать новые строки в блок данных, сервер Oracle анализирует значения этих параметров и текущие характеристики блока, и выясняет, может ли информация быть записана в блок:

·  если относительный размер свободного пространства блока больше, чем значение параметра PCTFREE, блок может быть использован для добавления новых строк;

·  в противном случае блок считается заполненным, и новые данные в него добавляться не будут.

Как только относительный объем используемого пространства в блоке станет меньше значения параметра PCTUSED, блок снова станет использоваться сервером базы данных для добавления строк.

Для каждого сегмента данных или сегмента индексов Oracle поддерживает один или более списков свободных блоков (free lists), представляющих собой указатели на блоки данных, выделенные для экстентов этого сегмента и имеющие свободного пространства больше, чем определено значением параметра PCTFREE. Такие блоки можно использовать для вставки строк.