CREATE TABLESPACE оператор Oracle PL/SQL

В этом учебном пособии вы узнаете, как использовать Oracle оператор CREATE TABLESPACE с синтаксисом и примерами.

Описание

Оператор CREATE TABLESPACE используется для выделения пространства в базе данных Oracle, где хранятся объекты схемы.

Оператор CREATE TABLESPACE может использоваться для создания трех видов табличных пространств:

  1. Permanent Tablespace
  2. Temporary Tablespace
  3. Undo Tablespace

Мы рассмотрим все 3 вида табличных пространств.

1. Permanent Tablespace

Постоянное табличное пространство содержит постоянные объекты схемы, которые хранятся в файлах данных.

Синтаксис

Синтаксис инструкции CREATE TABLESPACE при создании постоянного табличного пространства:

CREATE
[ SMALLFILE | BIGFILE ]
TABLESPACE tablespace_name
{ DATAFILE { [ 'filename' | 'ASM_filename' ]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
[ AUTOEXTEND
{ OFF
| ON [ NEXT integer [ K | M | G | T | P | E ] ]
[ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
}
]
| [ 'filename | ASM_filename'
| ('filename | ASM_filename'
[, 'filename | ASM_filename' ] )
]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
}
{ MINIMUM EXTENT integer [ K | M | G | T | P | E ]
| BLOCKSIZE integer [ K ]
| { LOGGING | NOLOGGING }
| FORCE LOGGING
| DEFAULT [ { COMPRESS | NOCOMPRESS } ]
storage_clause
| { ONLINE | OFFLINE }
| EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE
| UNIFORM
[ SIZE integer [ K | M | G | T | P | E ] ]
]
| DICTIONARY
}
| SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
| FLASHBACK { ON | OFF }
[ MINIMUM EXTENT integer [ K | M | G | T | P | E ]
| BLOCKSIZE integer [ K ]
| { LOGGING | NOLOGGING }
| FORCE LOGGING
| DEFAULT [ { COMPRESS | NOCOMPRESS } ]
storage_clause
| { ONLINE | OFFLINE }
| EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
| DICTIONARY
}
| SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }
| FLASHBACK { ON | OFF }
]
}

SMALLFILE - табличное пространство, содержащее 1022 файла данных или временных файлов (каждый файл может содержать до 4 миллионов блоков). Это самый распространенный размер для создания табличного пространства.
BIGFILE - табличное пространство, содержащее только один файл данных или временный файла (размер этого файла может составлять до 4 миллионов блоков).

СОВЕТ. Если вы опустите параметр SMALLFILE или BIGFILE, база данных Oracle будет использовать тип табличного пространства по умолчанию.

tablespace_name - имя создаваемого табличного пространства.
storage_clause - синтаксис для storage_clause:

STORAGE
({ INITIAL integer [ K | M | G | T | P | E ]
| NEXT integer [ K | M | G | T | P | E ]
| MINEXTENTS integer
| MAXEXTENTS { integer | UNLIMITED }
| PCTINCREASE integer
| FREELISTS integer
| FREELIST GROUPS integer
| OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ]
| BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
}
[ INITIAL integer [ K | M | G | T | P | E ]
| NEXT integer [ K | M | G | T | P | E ]
| MINEXTENTS integer
| MAXEXTENTS { integer | UNLIMITED }
| PCTINCREASE integer
| FREELISTS integer
| FREELIST GROUPS integer
| OPTIMAL [ integer [ K | M | G | T | P | E ] | NULL ]
| BUFFER_POOL { KEEP | RECYCLE | DEFAULT }
]
)

Пример PERMANENT TABLESPACE

Ниже приведен оператор CREATE TABLESPACE, который создает простое постоянное табличное пространство:

Этот оператор CREATE TABLESPACE создает постоянное табличное пространство tbs_perm_01, имеющее один файл данных tbs_perm_01.dat.

Ниже приведен оператор CREATE TABLESPACE, который создает постоянное табличное пространство, которое будет расширяться, когда требуется больше места:

Этот оператор CREATE TABLESPACE создает постоянное табличное пространство tbs_perm_02 с одним файлом данных tbs_perm_02.dat. Когда требуется больше места, 10M экстентов будет автоматически добавляться до достижения 200 МБ.

Ниже приведен оператор CREATE TABLESPACE, который создает постоянное табличное пространство BIGFILE, которое будет расширяться, когда требуется больше места:

Этот оператор CREATE TABLESPACE создает постоянное табличное пространство BIGFILE с именем tbs_perm_03, имеющее один файл данных tbs_perm_03.dat.

2. Temporary Tablespace

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

Синтаксис

Синтаксис оператора CREATE TABLESPACE при создании временного табличного пространства:

CREATE
[ SMALLFILE | BIGFILE ]
TEMPORARY TABLESPACE tablespace_name
[ TEMPFILE { [ 'filename' | 'ASM_filename' ]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
[ AUTOEXTEND
{ OFF
| ON [ NEXT integer [ K | M | G | T | P | E ] ]
[ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
}
]
| [ 'filename | ASM_filename'
| ('filename | ASM_filename'
[, 'filename | ASM_filename' ] )
]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
}
[ TABLESPACE GROUP { tablespace_group_name | '' } ]
[ EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
| DICTIONARY
} ]

SMALLFILE - табличное пространство, содержащее 1022 файла данных или временных файлов (каждый файл может содержать до 4 миллионов блоков). Это самый распространенный размер для создания табличного пространства.
BIGFILE - табличное пространство, содержащее только один файл данных или временный файл (размер этого файла может составлять до 4 миллионов блоков).

СОВЕТ. Если вы опустите параметр SMALLFILE или BIGFILE, база данных Oracle будет использовать тип табличного пространства по умолчанию.

tablespace_name - имя создаваемого табличного пространства.

Пример TEMPORARY TABLESPACE

Ниже приведен оператор CREATE TABLESPACE, создающий временное табличное пространство:

Этот оператор CREATE TABLESPACE создает временное табличное пространство tbs_temp_01 с одним временным файлом tbs_temp_01.dbf.

3. UNDO TABLESPACE

Для undo табличное пространство отмены, если база данных Oracle запускается в автоматическом режиме отмены отмены.
Undo табличное пространство создается для управления undo данными, если база данных Oracle запущена в автоматическом undo режиме управления.

Синтаксис

Синтаксис оператора CREATE TABLESPACE при создании табличного пространства Undo:

CREATE
[ SMALLFILE | BIGFILE ]
UNDO TABLESPACE tablespace_name
[ DATAFILE { [ 'filename' | 'ASM_filename' ]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
[ AUTOEXTEND
{ OFF
| ON [ NEXT integer [ K | M | G | T | P | E ] ]
[ MAXSIZE { UNLIMITED | integer [ K | M | G | T | P | E ] } ]
}
]
| [ 'filename | ASM_filename'
| ('filename | ASM_filename'
[, 'filename | ASM_filename' ] )
]
[ SIZE integer [ K | M | G | T | P | E ] ]
[ REUSE ]
}
[ EXTENT MANAGEMENT
{ LOCAL
[ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M | G | T | P | E ] ] ]
| DICTIONARY
} ]
[ RETENTION { GUARANTEE | NOGUARANTEE } ]

SMALLFILE - табличное пространство, содержащее 1022 файла данных или временных файла (каждый файл может содержать до 4 миллионов блоков). Это самый распространенный размер для создания табличного пространства.
BIGFILE - табличное пространство, содержащее только один файл данных или временный файл (размер этого файла может составлять до 4 миллионов блоков).

СОВЕТ. Если вы опустите параметр SMALLFILE или BIGFILE, база данных Oracle будет использовать тип табличного пространства по умолчанию.

tablespace_name - имя создаваемого табличного пространства.

Пример - UNDO TABLESPACE

Ниже приведен оператор CREATE TABLESPACE, который создает Undo табличное пространство:

Этот оператор CREATE TABLESPACE создает табличное Undo пространство tbs_undo_01 размером 5 МБ и имеет один файл данных tbs_undo_01.f.