
- •Хранение баз данных
- •Табличные области
- •Табличная область system
- •Другие табличные области
- •Оперативные и отключенные табличные области
- •Постоянные и временные табличные области
- •Табличные области только для чтения и чтения/записи
- •Дополнительные сведения о файлах данных
- •Число файлов данных для табличной области
- •Использование пространства файлов данных
- •Сращивание свободного пространства в файлах данных табличной области
- •Размеры файлов данных
- •Повреждение файлов данных
- •Оперативные и отключенные файлы данных
- •Управляющие файлы
- •Зеркально отображенные управляющие файлы
- •Сегменты, экстенты и блоки данных
- •Сегменты данных и индексные сегменты
- •Временные сегменты
- •Временные табличные области
- •Сегменты отката
- •Запись информации в сегменты отката
- •Сегмент отката system
- •Несколько сегментов отката
- •Назначение конкретных сегментов отката
- •Оперативные и отключенные сегменты отката
- •Общие и частные сегменты отката
- •Отложенные сегменты отката
- •Другие функции сегментов отката
- •Блоки данных
- •Выделение блоков данных
- •Доступность блоков данных и списки свободных блоков
- •Сцепление строк и размер блока данных
- •Параметры хранения объектов
- •Размещение табличных областей
- •Параметры для экстентов
- •Initial 500k
- •Специальные параметры хранения данных для сегментов отката
- •Initial 100k
- •Параметры для блоков данных
- •Параметры для списков свободных блоков
- •Пороги блоков
- •Элементы транзакций
- •Установки по умолчанию для хранения объектов
- •Установки по умолчанию для пользователей
- •Установки по умолчанию для табличных областей
- •Initial 100k
- •Уникальность хранения мультимедийных данных
- •Дополнительные сведения о локаторах lob
- •Разделение данных
- •Разделенные таблицы
- •Размещение строк в разделах данных
- •Использование maxvalue
- •Разделенные индексы
- •Варианты создания разделенных индексов
- •Равноразделенные объекты
- •Глобальные разделенные индексы
- •Имена таблиц с учетом разделов
- •Управление разделением
- •Соответствие индексов и таблиц
- •Контрольные вопросы.
Параметры хранения объектов
В 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(