- •Хранение баз данных
- •Табличные области
- •Табличная область system
- •Другие табличные области
- •Оперативные и отключенные табличные области
- •Постоянные и временные табличные области
- •Табличные области только для чтения и чтения/записи
- •Дополнительные сведения о файлах данных
- •Число файлов данных для табличной области
- •Использование пространства файлов данных
- •Сращивание свободного пространства в файлах данных табличной области
- •Размеры файлов данных
- •Повреждение файлов данных
- •Оперативные и отключенные файлы данных
- •Управляющие файлы
- •Зеркально отображенные управляющие файлы
- •Сегменты, экстенты и блоки данных
- •Сегменты данных и индексные сегменты
- •Временные сегменты
- •Временные табличные области
- •Сегменты отката
- •Запись информации в сегменты отката
- •Сегмент отката system
- •Несколько сегментов отката
- •Назначение конкретных сегментов отката
- •Оперативные и отключенные сегменты отката
- •Общие и частные сегменты отката
- •Отложенные сегменты отката
- •Другие функции сегментов отката
- •Блоки данных
- •Выделение блоков данных
- •Доступность блоков данных и списки свободных блоков
- •Сцепление строк и размер блока данных
- •Параметры хранения объектов
- •Размещение табличных областей
- •Параметры для экстентов
- •Initial 500k
- •Специальные параметры хранения данных для сегментов отката
- •Initial 100k
- •Параметры для блоков данных
- •Параметры для списков свободных блоков
- •Пороги блоков
- •Элементы транзакций
- •Установки по умолчанию для хранения объектов
- •Установки по умолчанию для пользователей
- •Установки по умолчанию для табличных областей
- •Initial 100k
- •Уникальность хранения мультимедийных данных
- •Дополнительные сведения о локаторах lob
- •Разделение данных
- •Разделенные таблицы
- •Размещение строк в разделах данных
- •Использование maxvalue
- •Разделенные индексы
- •Варианты создания разделенных индексов
- •Равноразделенные объекты
- •Глобальные разделенные индексы
- •Имена таблиц с учетом разделов
- •Управление разделением
- •Соответствие индексов и таблиц
- •Контрольные вопросы.
Глобальные разделенные индексы
В некоторых ситуациях полезно создавать глобальные разделенные индексы, которые не являются равноразделенными со своими таблицами. Глобальный разделенный индекс (global partitioned index) может содержать ключи из всех разделов соответствующей таблицы. В приложенияхOLTPглобальные индексы могут обеспечивать лучшую производительность, чем локальные, так как они сводят к минимуму число обращений к индексам. Однако при модификации раздела базовой таблицы может быть задействовано большинство или даже все разделы соответствующего глобального индекса. При принятии решения о создании такого разделенного индекса в качестве основного критерия используйте характеристики своего приложения.
Имена таблиц с учетом разделов
В Oracle8 предлагается уникальная синтаксическая конструкция для команд, называемая именами таблиц с учетом разделов, которая может использоваться разработчиками приложений при создании SQL-операторов, работающих с разделенными таблицами. Имя таблицы с учетом разделов (partition-extended table name) - это простой, но эффективный синтаксис, позволяющий приложениям просматривать как таблицы, так и их разделы. Например, с помощью следующего запроса из нужного раздела таблицы выбираютсявсе клиенты, проживающие в Калифорнии (СА -California):
SELECT * FROM usa_customers PARTITION (p1);
Хотя такие имена могут повысить производительность некоторых SQL-операторов, разработчикам следует внимательнее подходить к использованию этого синтаксиса в SQL-операторах приложений. Дело в том, что в именах таблиц с учетом разделов указываются характеристики физического хранения табличных данных. Вообще говоря, не стоит использовать в программах приложений SQL-операторы, которые создают взаимосвязи между физическими областями диска и таблицами, - такие взаимосвязи могут привести к прекращению функционирования приложения, если впоследствии физическое место хранения одной из таблиц изменится.
Если имена таблиц с учетом разделов при разработке приложения все же применяются, не забывайте, что такие имена являются расширением ANSI/ISO(языкаSQL), вводимым вOracle. Когда нужно использовать имена таблиц с учетом разделов и при этом сохранить переносимость приложения, создавайте представления с указанием таких имен и применяйте для этих представлений стандартные SQL-операторы. Например:
CREATE VIEW v1 AS SELECT * FROM t1 PARTITION(p1)
SELECT* FROM v1;
Управление разделением
Oracle8 полностью поддерживает работу с разделенными таблицами и индексами. Например:
Можно преобразовать неразделенную таблицу в разделенную, и наоборот.
Можно добавить новые разделы таблицы к уже о существующим.
Можно разбивать и объединять разделы, расположенные в середине таблицы.
Можно удалять разделы таблицы, не содержащие строк.
Можно укорачивать отдельные разделы таблицы, а не всю таблицу в целом.
Соответствие индексов и таблиц
При модификации разделов таблицы Oracleавтоматически выполняет эквивалентную операцию, чтобы синхронизировать с таблицей все её равноразделенные индексы. При модификации же разделов таблицы, имеющей глобальный разделенный индекс, можно перестроить этот индекс так, чтобы синхронизировать его с измененной таблицей.
Итоги
В этом разделе было рассказано о логических и физических структурах хранения данных, в том числе о базах данных, табличных областях, файлах данных, управляющих файлах, сегментах, экстентах и блоках данных.
В управляющем файле хранится внутрисистемная информация о физической структуре базы данных.
Табличные области являются логическими единицами хранения информации базы данных Oracle.
Для физического хранения информации каждой табличной области имеется один или несколько файлов данных.
Сегмент - это совокупность блоков данных, отводимых для объекта хранения данных: таблицы, кластера данных, индекса или моментального снимка.
Экстент - это группа непрерывных блоков данных, выделяемых сегменту объекта.
Блок данных - это единица доступа к физическому диску, хранящему базы данных Oracle.
Кроме того, было рассказано о том, как разделять данные больших таблиц и индексов для повышения производительности и управляемости этих объектов.