Oracle DB, Табличные пространства
Предопределенные табличные пространства
- SYSTEM
- создается при создании базы
- требует расширенный доступ
- нельзя переименовать или удалить
- управление сегментами только ручное MSSM (Manual Segment Space Management), на ASSM (Automatic Segment Space Management) переключить нельзя
- SYSAUX
- USERS
- TEMP - временное табличное пространство по умолчанию
- UNDO
Временные табличные пространства
Временные табличные пространства предназначены для хранения временных данных сессий и имеют ряд особенностей.
Особенности:
- Временное табличное пространство присутствует в базе постоянно
- Используется для хранения временных данных сессии пользователя, которые хранятся до ее завершения. Например, рабочие области сортировки.
- Во временном табличном пространстве нельзя создавать объекты (таблицы, индексы и т.п.)
- Временные данные принадлежат сессии и не могут быть разделены с другими сессиями
- Oracle Database пишет все данные сессии в локальной области (PGA) порциями по 64 Кбайт, поэтому советуют создавать табличные пространства с размерами экстентов, кратными 64 Кбайт.
Табличные пространства отката (UNDO)
Табличные пространства отката (UNDO) предназначены для хранения данных для отката транзакций.
Параметры табличных пространств
Выделение размера экстента
CREATE TABLESPACE ... ... EXTENT MANAGEMENT LOAL {AUTOALLOCATE | UNIFORM [SIZE <size>] }
- AUTOALLOCATE - (опция по умолчанию) размер новых экстентов определяется автоматически, с ростом сегмента Oracle увеличивает размер новых экстентов от 64 Кб до 64 Мб.
- UNIFORM - новые экстенты имеют фиксированный размер заданный на уровне табличного пространства, если размер явно не указан, то он принимается равным 1 Мб. Размер экстента можно задать только при создании табличного пространства, после создания его изменить нельзя. Часто администраторы создают несколько табличных пространств, разделяя их по размеру экстента, чтобы размещать объекты в оптимальном для них табличном пространстве.
К выбору размера экстента необходимо подходить серьезно, т.к. от этого зависит количество экстентов в сегменте, что может существенно влиять на производительность.
Рекомендации:
- 64 Кбайт — для малых сегментов;
- 1 Мбайт — для средних сегментов;
- 64 Мбайт — для крупных сегментов.
Если в табличном пространстве планируется размещать сегменты разных размеров, то лучше использовать AUTOALLOCATE.
Управление размером сегмента
CREATE TABLESPACE ... ... SEGMENT SPACE MANAGEMENT {AUTO | MANUAL}
Локально управляемые табличные пространства
В Oracle 11g и выше табличные пространства являются локально управляемыми. В более ранних версиях табличные пространства управлялись словарем данных.