Глобальный параллелизм временных таблиц - PullRequest
3 голосов
/ 21 апреля 2010

У меня есть глобальная временная таблица, которая установлена ​​на удаление при фиксации. Как это ведет себя в вопросе параллелизма? Я имею в виду, что произойдет, если другой сеанс захочет использовать эту глобальную временную таблицу? Ответ, вероятно, не будет "они разделяют одни и те же данные".

Теперь, если мои предположения верны :), блокируется ли таблица, пока не будет зафиксировано первое соединение, или dbms создает глобальную временную таблицу для каждого соединения? (что-то вроде экземпляра таблицы?)

1 Ответ

9 голосов
/ 21 апреля 2010

Из документации :

Данные во временной таблице видны только сеансу, который вставляет данные в таблицу.

Каждый сеанс будет иметь свою логическую независимую копию временной таблицы.

Поскольку вы не можете видеть данные других сеансов и поскольку Oracle обрабатывает блокировки на уровне строк, вы не можете быть заблокированы другими сеансами DML.Параллельный DML (вставка, удаление, обновление) не повлияет на другие сеансы.

Только DDL будет нуждаться в блокировке на столе (т.е.: ALTER TABLE ...)

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