Авторасширяемое / автоматическое распределение путаницы - PullRequest
0 голосов
/ 06 июня 2019

В oracle, предложение управления экстентом в create tablespace имеет ключевое слово autoallocate . Но в таблице dba_data_files есть столбец , который автоматически расширяется . Устанавливает ли ключевое слово в табличном пространстве create именно этот столбец?

EDIT

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

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Да, это путаница. autoallocate является свойством TABLESPACE, см. exte_management_clause , autoextensible является частью файла, см. Предложение file_specification (AUTOEXTENDON)

Вот небольшой пример (имя файла сокращено для краткости)

См. Соответствующие столбцы словаря данных dba_tablespaces.ALLOCATION_TYPE и dba_data_files.AUTOEXTENSIBLE

CREATE TABLESPACE T1   DATAFILE 'D:\...\T1.DBF' SIZE 1M
   EXTENT MANAGEMENT LOCAL AUTOALLOCATE
 ;



CREATE TABLESPACE T2   DATAFILE 'D:\...\T2.DBF'  SIZE 1M   AUTOEXTEND ON
   EXTENT MANAGEMENT LOCAL  UNIFORM SIZE 128K
 ;

select TABLESPACE_NAME,EXTENT_MANAGEMENT, ALLOCATION_TYPE
from dba_tablespaces where tablespace_name in ('T1','T2');
TABLESPACE_NAME                EXTENT_MAN ALLOCATIO
------------------------------ ---------- ---------
T1                             LOCAL      SYSTEM   
T2                             LOCAL      UNIFORM  

select AUTOEXTENSIBLE,  FILE_NAME from dba_data_files;

AUT FILE_NAME
--- -------------------
NO  T1.DBF
YES T2.DBF
1 голос
/ 06 июня 2019

Нет, эти вещи не связаны.

Автоматическое выделение означает, что вы позволяете базе данных решать, какой размер экстента «выделить» для вашего объекта и его данных.

Из docs -

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

Автоматическое расширение означает, что табличное пространство может самостоятельно наращивать файлы, если они заполнены полностью,пока они не достигнут предопределенного предела или, необязательно, «НЕОГРАНИЧЕННО».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...