Oracle

В данном разделе представлены выдержки и некоторые программы из моего диплома,
посвященного настройке и оптимизации работы сервер ORACLE.



Параметры PCTFREE и PCTUSED.

Оба эти параметра служат для управления пространством в блоках данных. Точнее PCTFREE и PCTUSED позволяют управлять использованием свободного пространства для вставки и обновления строк в блоках данных.

Параметр PCTFREE устанавливает процент памяти блока, резервируемой для возможных обновлений строк, уже содержащихся в блоке. Как только блок данных будет заполнен до процента PCTFREE, в этот блок не возможно будет вставить новые строки до тех пор, пока процент памяти используемой в этом блоке не упадет ниже значения параметра PCTUSED. Параметр PCTUSED задает нижнюю границу, достижение которой вызывает возврат блока данных в список свободных областей. Оба параметра настраиваются в паре. Устанавливая разные варианты значений для этих параметров, можно оптимизировать использование дискового пространства.

Параметры PCTFREE и PCTUSED задаются при создании таблиц и индексов и указываются в конструкциях CREATE TABLE и CREATE INDEX соответственно, а так же могут быть изменены для уже созданных таблиц и индексов при помощи конструкций ALTER TABLE и ALTER INDEX.

При настройке PCTFREE и PCTUSED необходимо помнить о двух ограничения. Во-первых, их сумма не может превышать 100. Во-вторых, PCTFREE нельзя устанавливать равным 0, так как это вызовет проблемы распределения памяти для внутренних операций.

Дальше я приведу несколько стандартных вариантов установки данных параметров:

1. Большая часть запросов содержит операторы UPDATE, которые увеличиваю размеры записей.

PCTFREE = 20
PCTUSED = 40

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

2. В основном запросы состоят из операторов INSERT и DELETE, а операторы DELETE в среднем не увеличивают размер записи.

PCTFREE = 5
PCTUSED = 60

PCTFREE установлен в 5, так как в основном длины записей не изменяются. PCTUSED установлен в 60, чтобы избежать дополнительного выделения большого числа блоков данных, так как память, освобождаемая оператором DELETE, почти сразу же используется оператором INSERT.

3. Данные из таблицы выбираются в основном на чтение.

PCTFREE = 5
PCTUSED = 90

PCTFREE установлен в 5, так как операторы UPDATE используются редко. PCTUSED установлен в 90, так что для хранения данных используется большая часть блока. В результате уменьшается общее число используемых блоков.



prev next
Hosted by uCoz