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

Параметры хранения объектов

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

Размещение табличных областей

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

CREATE PUBLIC ROLLBACK SEGMENT rbseg_10

TABLESPACErbseg;

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

Параметры для экстентов

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

  • Число экстентов, выделяемых при создании сегмента. При создании нового сегмента Oracleвыделяет, по крайней мере, один экстент.

  • Максимальное число экстентов, выделяемых при создании сегмента.

  • Размер экстентов сегмента. Можно установить размер начального и последующих экстентов сегмента, а также коэффициент возраста­ния, применяемый перед выделением сегменту новых экстентов.

Например, с помощью следующего оператора CREATETABLEможно управлять выделением экстентов сегменту данных для новой таблицыCUSTOMERS:

CREATE TABLE sales, customers

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

STORAGE(

Initial 500k

NEXT 500K

MINEXTENTS 1

MAXEXTENTS 10

PCTINCREASE50 );

Когда создается новый сегмент данных для таблицы CUSTOMERS, сервер выделяет ему один начальный экстент размером 500K. Когда этот экстент заполняется,Oracleвыделяет следующий экстент размером 500K и изменяет размер последующего экстента сегмента до 750К (т.е. 500K увеличивается на 50%). Когда требуется новый экстент,Oracleвыделяет его (размером 750К) и изменяет размер следующего экстента сегмента до 1125К (т.е. 750К увеличивается на 50%). Такое выделение экстентов продолжается до десятого экстента, что является пределом для числа экстентов в сегменте. Естественно, можно изменять параметры хранения объектов, например для того, чтобы увеличить максимальное число экстентов для объекта.

Примечание.Для параметраMAXEXTENTSможно установить значениеUNLIMITED. При этом сегменту будет выделяться неограниченное число экстентов.

Специальные параметры хранения данных для сегментов отката

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

  • Число экстентов, причем в любое время сегмент отката должен состоять не менее чем из 2 экстентов.

  • Оптимальный размер (optimal size). Если размер сегмента отката превышает его оптимальный размер,Oracleсо временем отменяет выделение одного или нескольких экстентов, сокращая сегмент до оптимального размера.

Например, с помощью следующего оператора CREATEROLLBACKSEGMENTсоздается сегмент отката, и указываются его параметры:

CREATE PUBLIC ROLLBACK SEGMENT rbseg_11

TABLESPACE rbseg

STORAGE(