Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / LCD / Хранение БД.doc
Скачиваний:
50
Добавлен:
16.04.2013
Размер:
173.06 Кб
Скачать

Initial 100k

NEXT 100K

MINEXTENTS 3

MAXEXTENTS 100

OPTIMAL 310K);

Параметры для блоков данных

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

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

При создании таблицы, кластера, индекса или моментального снимка следует указывать число групп списков свободных блоков, которое нужно создать для соответствующего сегмента. Группа списков свободных блоков (free list group) - это группа, состоящая из одного или нескольких списков свободных блоков для сегмента объекта хранения данных. По умолчанию для каждого сегмента данных или индексного сегментаOracleсоздает одну группу, в которой находится один список. При использованииOracleс параллельным сервером можно уменьшить число конфликтов между серверами за просмотр списков свободных блоков и повысить производительность системы, создав несколько групп по несколько списков в каждой. Например, с помощью следующего оператора создается индекс, имеющий несколько групп списков свободных блоков по несколько списков в каждой:

CREATE INDEX sales.customer_name

ON sales.customers (lastname, firstname)

STORAGE(

... другие параметры хранения ...

FREELIST GROUPS 2

FREELISTS2);

Пороги блоков

Выше было рассказано, что по мере заполнения или освобождения блоки данных могут включаться в списки свободных блоков сегментов и исключаться из них. Для таблиц, кластеров, индексов и моментальных снимков существуют два параметра, PCTFREEиPCTUSED, позволя­ющие вручную управлять включением блоков в списки свободных блоков и исключением из них:

  • PCTFREE- это максимальный порог, определяющий тот объем пространства блока данных, который необходимо оставить для последующих операций обновления информации.

  • PCTUSED- это минимальный порог, определяющий момент вклю­чения блока данных в список свободных блоков соответствующего сегмента. Например, порогPCTUSEDпо умолчанию для всех сег­ментов установлен равным 40%. Таким образом, когда транзакции удаляют строки из блока данных, и он остается заполненным только на 39%,Oracleвозвращает его обратно в список свободных блоков соответствующего сегмента.

На рис. $.10 демонстрируется включение блоков данных в списки свободных блоков сегмента и исключение из них при помощи параметров PCTFREEиPCTUSED.

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

CREATE TABLE sales.orders

(... описания столбцов ...)

PCTFREE 20

PCTUSED 60 ;

Элементы транзакций

Когда блок данных объекта обновляется транзакцией, Oracleвыделяет в этом блоке элемент транзакции (transaction entry). Это небольшой участок дисковой памяти в заголовке блока данных, в которомOracleхранит внутреннюю обрабатываемую информацию до тех пор, пока транзакция не завершится или пока не будет выполнен её откат. Можно установить два параметра хранения,INITRANSиMAXTRANS, которые применяются для настройки способа выделения элементов транзакций в блоках таблиц, кластеров данных, индексов или моментальных снимков:

  • INITRANSопределяет объем пространства заголовка блока данных, которое предварительно выделяется для элементов транзакций. Когда ожидается, что с блоком данных будут параллельно работать много транзакций, можно заранее выделить дополнительное прост­ранство для элементов транзакций и избежать тем самым расходо­вания ресурсов на динамическое выделение этого пространства.

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