Создание табличных пространств
Проектировщик базы данных работает с логическими объектами - табличными пространствами, таблицами, представлениями, индексами и т.д., так называемыми логическими файлами СУБД Oracle. Информация о содержимом логических файлов хранится в словаре данных.
Одним из самых трудных для понимания и объяснения объектов реляционной базы данных Oracle является табличное пространство (tablespace). Табличным пространством в Oracle называется логическая область хранения данных, размер которой ограничен размером используемого жесткого диска. Физические файлы создаются на уровне табличного пространства.
Выделением места для табличных пространств и способом их совместного использования управляют администраторы базы данных. Поэтому проектировщики базы данных должны при использовании табличных пространств работать в тесном сотрудничестве с ними.
Табличные пространства можно создавать, менять и удалять. Для создания табличных пространств в СУБД Oracle предусмотрена команда SQL CREATE TABLESPACE, параметры которой приведены в таблице 13.8.
Таблица 13.8. Параметры команды create tablespace
ПараметрОписаниеЗамечание по умолчаниюИмя_табличного_пространства | Имя, присваемое табличному пространству. Оно должно отражать назначение этого табличного пространства | |
Спецификация файла данных | ||
Местонахождение файла | Полный путь к каталогу и имя файла | |
size | Полный начальный размер файла данных, в соответствии с которым выделяется дисковое пространство | |
reuse | Если файл данных существует, его нужно использовать повторно, указав этот параметр, в противном случае возникнет ошибка. Размер файла должен совпадать с указанным в параметре size | |
autoextend | Разрешает или запрещает автоматическое увеличение размера файла данных.Может принимать значения on и off. Для on существуют дополнительные параметры: next: величина приращения файла (в байтах). maxsize: наибольший допустимый размер файла данных. Может быть неограниченным (unlimited) | ON |
minimum extend | Предназначен для управления фрагментацией - определяет минимальный размер экстента | |
default предложение хранения | объем пространства, выделяемого объекту при отсутствии явно указанной конструкции хранения | |
initial | Объем пространства, выделяемого для первого экстента страниц | 5 |
next | Объем для пространства, выделяемого для второго и последующих экстентов | 5 физических страниц |
minextens | Минимальное количество выделяемых экстентов | 1 |
maxextents | Максимальное количество выделяемых экстентов - может быть неограниченным (intimated) | 121 |
petincrease | Коэффициент приращения размера (в %) для каждого следующегоэкстента после next | 50 |
freelist groops | Используется в режиме параллельного сервера и указывает количество списков свободных блоков для объектов, созданных в данном табличном пространстве без использования конструкций хранения | |
freelist | Указывает количество списков свободных блоков, созданных в данном табличном пространстве без использования конструкций хранения | |
optimal | Применяется только к сегментам отката и определяет минимальный объем пространства, до которого сокращается сегмент отката после расширения за пределы оптимального значения | |
online/offline | Указывает, режим (оперативный/автономный, в котором изначально должно находиться табличное пространство | online |
permanent/temporary | Указывает, будет ли табличное пространство содержать объекты или только временные сегменты | permanent |
Предложение управления экстентами | ||
dictionary | Указывает, что управление экстентами осуществляется только через словарь данных | dictionary |
local | Указывает, что некоторая часть табличного пространства зарезервирована для битовых карт | user |
plugged_in | Используется с переносимыми табличными пространствами и указывает, что табличное пространство может быть "подключено" к базе данных | NO |
В качестве примера создадим табличное пространство, не используя никаких параметров, как показано ниже.
CREATE TABLESPACE my_ts DATAFILE 'c:\ora9i\oradata\orcr\myfile01.dbf' SIZE 2M;
Ключевое слово TABLESPACE задает имя табличной области (my_ts), ключевое слово DATAFILE задает спецификацию файла операционной системы ('c:\ora9i\oradata\orcr\myfile01.dbf'), в котором будут размещаться данные создаваемой табличной области, ключевое слово SIZE задает размер табличного пространства в мегабайтах. Остальные значения параметров принимаются по умолчанию. В частности, поскольку значение по умолчанию для параметра AUTOEXTEND есть ON (см. таблицу 13.8), то разрешено автоматическое расширение пространства, выделенного для данного табличного пространства. По умолчанию созданное табличное пространство переходит в оперативный режим (ONLINE) и является постоянным табличным пространством (PERMANENT).
Для изменения параметров табличного пространства используется команда ALTER TABLESPACE, а для удаления - команда DROP.
Чтобы разместить объект базы данных в определенном табличном пространстве, необходимо явно указать это табличное пространство в командах SQL. Например, команда
CREATE TABLE CUSTOMER (CUSTOMER_ID CHAR(5) NOT NULL, CUSTOMER_NAME VARCHAR(25), CUSTOMER_ADDR VARCHAR(50), CUSTOMER_RATING CHAR(10)) TABLESPASE my_st, PCTFREE 15;
размещает таблицу CUSTOMER и табличном пространстве my_st.