Показать сообщение отдельно
  #30  
Старый 24.09.2009, 13:37
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Временные таблицы



Временные таблицы

Преимущество использования временных таблиц состоит в том, что они позволяют сохранить частные данные, необходимые в ходе решения задачи, которые затем должны быть удалены при завершении транзакции или сеанса. Такие функциональные возможности временных таблиц снимают с пользователя ответственность за скрытие используемой информации от других сеансов, а также освобождают от необходимости удаления сгенерированных данных по завершению действий. В сеансе видимы только такие данные временных таблиц, которые были вставлены в них в этом же сеансе.

Временные таблицы могут двух видов: определенные для транзакций (transaction-specific) и определенные для сеанса (session-specific). В таблицах первого вида данные существуют в течение транзакции, в таблица второго вида - в течение сеанса. В обоих случаях данные, вставляемые в сеансе, принадлежат этому сеансу. В каждом сеансе можно выбирать и изменять только его собственные данные. В результате блокировки DML не устанавливаются над данными временных таблиц.

Время жизни строк устанавливается с помощью предложений:

ON COMMIT DELETE ROWS; определяет, что строки доступны в рамках транзакции;
ON COMMIT PRESERVE ROWS; определяет, что строки доступны в течение сеанса.

Временные таблицы создаются по команде CREATE GLOBAL TEMPORARY TABLE.

Для них можно создавать индексы, представления и триггеры, а также использовать утилиты Export и Import или Data Pump для выгрузки и загрузки определений временных таблиц. Однако данные не выгружаются, даже если вы укажите параметр
ROWS.

Кроме уже упомянутых двух случаев, вызывающих удаление данных, можно принудительно и эффективно очистить таблицу, используя команду TRUNCATE TABLE. В результате удаляются все данные, которые были вами вставлены. Это более эффективно, чем выполнение команды DELETE.

Временные таблицы могут быть созданы с помощью Enterprise Manager. Для этого на странице Create Table: Table Organization отметьте поле Temporary. Затем щелкните на кнопке Continue. На следующей странице можно будет задать время жизни: в течение сеанса (Session Specific) или транзакции (Transaction Specific).

Поле Tablespace недоступно, поскольку такая таблица всегда создается во временном табличном пространстве пользователя; никакое другое табличное пространство не может быть указано.

Примечание: ключевое слово GLOBAL соответствует терминологии, определенной в стандарте ISO (International Organization for Standardization) для SQL.
__________________
Телеграм чат
Ответить с цитированием