Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
Правильный Вася
Member

Откуда:
Сообщений: 107
Читаю в доке:
You can create two types of temporary tablespaces:
• You can create a shared temporary tablespace by specifying the TEMPORARY
TABLESPACE clause.
• Starting with Oracle Database 12c Release 2 (12.2), you can create a local
temporary tablespace by specifying the LOCAL TEMPORARY TABLESPACE clause.

Судя по описанию, у них даже внутренняя структура хранения разная.
– Specify FOR ALL to instruct the database to create separate, nonshared temp
files for all HUB and LEAF nodes.
– Specify FOR LEAF to instruct the database to create separate nonshared temp
files for only LEAF nodes.


Во вьюхе DBA_Users есть 2 отдельных поля для них TEMPORARY_TABLESPACE и LOCAL_TEMP_TABLESPACE.
Но если при создании пользователя оставить по умолчанию, то оба поля имеют одинаковое значение TEMP. Т.е. тут они взаимозаменяемы? Противоречие. Или я что-то не понимаю.
4 окт 18, 13:52    [21695187]     Ответить | Цитировать Сообщить модератору
 Re: Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
Валерий Юринский
Member

Откуда: Москва, "ФОРС Дистрибуция"
Сообщений: 1088
Правильный Вася
– Specify FOR ALL to instruct the database to create separate, nonshared temp
files for all HUB and LEAF nodes.
– Specify FOR LEAF to instruct the database to create separate nonshared temp
files for only LEAF nodes.
Разберитесь что такое HUB and LEAF nodes.
Это поможет вам лучше понять ситуацию.
9 окт 18, 11:27    [21699027]     Ответить | Цитировать Сообщить модератору
 Re: Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
Ivan K
Member

Откуда: Москва
Сообщений: 298
Правильный Вася,

Структура метаданных действительно немного разная, потому что "LOCAL TEMPORARY TABLESPACE" может иметь только один темп-файл, хотя я не вижу проблем с использованием в нем нескольких темп-файлов. Но по сути это такой же пустой файл с небольшим заголовком.
Создать подобное табличное пространство в принципе можно, но использовать - довольно проблематично, для этого нужно поднять flex-cluster и настроить в нем reader nodes.
Вряд ли на практике такая конфигурация базы будет использоваться часто, разве что на тестовых стендах ради академического интереса.
9 окт 18, 17:11    [21699515]     Ответить | Цитировать Сообщить модератору
 Re: Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9113
Правильный Вася
Читаю в доке:
...
Во вьюхе DBA_Users есть 2 отдельных поля для них TEMPORARY_TABLESPACE и LOCAL_TEMP_TABLESPACE.
Но если при создании пользователя оставить по умолчанию, то оба поля имеют одинаковое значение TEMP. Т.е. тут они взаимозаменяемы? Противоречие. Или я что-то не понимаю.


У пользователей всeгда есть local temp tablespace. По умолчанию local temporary tablespace = temporary tablespace:

SQL> create user test_user identified by test_user
  2  default tablespace users
  3  temporary tablespace second_temp;

User created.

SQL> select temporary_tablespace,
  2         local_temp_tablespace
  3    from dba_users
  4    where username = 'TEST_USER';

TEMPORARY_TABLESPACE           LOCAL_TEMP_TABLESPACE
------------------------------ ------------------------------
SECOND_TEMP                    SECOND_TEMP

SQL> 


Для чего local присваивaется всегда? Почитай Access to Temporary Storage про пoрядок опрeделния использования shared temp vs local temp. Т.e. если пользователь не имеет local то тo-же temp будет испольоваться во всех случаях.

Также при создании пользователей нельзя указать local temp без указания shared temp:

SQL> create user test_user identified by test_user
  2  default tablespace users
  3  local temporary tablespace second_temp
  4  /
create user test_user identified by test_user
*
ERROR at line 1:
ORA-00922: missing or invalid option


SQL> 


что не соответствует syntax diagram и скорее всего есть баг.

SY.
9 окт 18, 19:12    [21699650]     Ответить | Цитировать Сообщить модератору
 Re: Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
Правильный Вася
Member

Откуда:
Сообщений: 107
SY
Т.e. если пользователь не имеет local то тo-же temp будет испольоваться во всех случаях.

Это понятно и логично.
Непонятно другое. Почему именно TEMP видно в LOCAL_TEMP_TABLESPACE ?
Ведь если б там было пусто, четко было бы ясно, что LOCAL TEMP не определено и использоваться будет только TEMP. А так получается деза.

Кстати, если сделать
CREATE USER C##U51 IDENTIFIED BY "1" TEMPORARY TABLESPACE tmplocal
то будет ошибка.
А вот если наоборот
CREATE USER C##U52 IDENTIFIED BY "1" LOCAL TEMPORARY TABLESPACE temp
то ошибки нет.
Какая-то односторонняя заменяемость...

SY
при создании пользователей нельзя указать local temp без указания shared temp
У меня проходит без ошибок.
10 окт 18, 17:15    [21700795]     Ответить | Цитировать Сообщить модератору
 Re: Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9113
Правильный Вася
Ведь если б там было пусто, четко было бы ясно, что LOCAL TEMP не определено и использоваться будет только TEMP. А так получается деза.


Еще раз - local TEMP так-жe как и традиционный (shared) TEMP определены всегда даже если не указаны в CREATE USER. Просто ини принимают значения по-умолчанию.

SY.
10 окт 18, 17:53    [21700846]     Ответить | Цитировать Сообщить модератору
 Re: Запутался с TEMPORARY TABLESPACE для USER в 12.2  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 16771
Правильный Вася
Какая-то односторонняя заменяемость...

Не влезая в ученую дискуссию отмечу, что разделяемый ресурс более универсален чем приватный.
К примеру, добраться до достижимого места назначения общественным транспортом может любой дееспособный гуманоид, в то время как частным автомобилем - только гуманоид, имеющий в распоряжении авто и право управления оным (прямо либо косвенно - к примеру, через другого гуманоида - не суть).
Так что да, "заменяемость односторонняя".
10 окт 18, 17:58    [21700849]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить