Создание табличных пространств
Проектировщик базы данных работает с логическими объектами - табличными пространствами, таблицами, представлениями, индексами и т.д., так называемыми логическими файлами СУБД 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.