Управление пространством в базе данных. Выделение, освобождение и размер экстентов

Страницы работы

12 страниц (Word-файл)

Содержание работы

Управление пространством в базе данных

Управление пространством в базе данных Oracle

Управление пространством, используемым объектами базы данных Oracle

Выделение экстентов

Освобождение экстентов

Размер экстентов

Управление пространством внутри сегментов

Автоматическое управление пространством сегмента

Ручное управление пространством сегмента

Особенности управления сегментами

Управление сегментами данных и индексными сегментами

Управление временными сегментами

Управление сегментами отката

Фрагментация базы данных Oracle

Фрагментация табличного пространства

Фрагментация объектов базы данных Oracle

Управление пространством в базе данных SQL Server

Управление распределением экстентов и свободным пространством в БД SQL Server

Управление пространством, используемым объектами базы данных SQL Server

Размещение страниц данных

Выделение пространства для объекта базы данных SQL Server

Сжатие базы данных SQL Server

Литература

Управление пространством в базе данных Oracle

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

Управление пространством, используемым объектами базы данных Oracle

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

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

Табличное пространство может использовать два метода хранения информации о своем свободном и используемом пространстве:

·  Локально управляемое табличное пространство (Locally managed tablespace) – экстенты управляются самим табличным пространством.

·  Табличное пространство, управляемое по словарю (Dictionary managed tablespace) – экстенты управляются через словарь данных.

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

Локально управляемые табличные пространства

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

Локально управляемое пространство имеет следующие преимущества:

·  Локальное управление экстентами автоматически определяет смежные свободные экстенты, удаляя необходимость объединять свободные экстенты.

·  Предотвращает рекурсивные операции управления пространством. Рекурсивные операции происходят в табличных пространствах, управляемых по словарю, если потребление или освобождение пространства в экстентах приводит к другим операциям, которые потребляют или освобождают пространство в таблице словаря данных или сегментах отката.

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

Табличные пространства, управляемые по словарю

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

Выделение экстентов

Экстент выделяется для сегмента:

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

·  Когда новые данные объекта не могут быть помещены в уже имеющиеся экстенты сегмента, выделяется дополнительный экстент. Очередной экстент выделяется сегменту только в том случае, если все ранее выделенные экстенты уже заняты

·  Администратор базы данных может выделить дополнительный экстент явно командой SQL

ALTER INDEX имя_индекса ALLOCATE EXTENT… – для сегментов индексов

ALTER CLUSTER имя_кластера ALLOCATE EXTENT… – для сегментов, содержащих данные кластера

ALTER TABLE имя_таблицы ALLOCATE EXTENT… – для сегментов, содержащих данные таблицы

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

Локально управляемое табличное пространство

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

Табличное пространство, управляемое по словарю

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

·  Oracle ищет набор смежных блоков данных, который по размеру соответствует выделяемому экстенту плюс один блок. Если новый экстент требует не более пяти блоков Oracle, дополнительный блок не добавляется.

Похожие материалы

Информация о работе