Oracle
 sql >> база данни >  >> RDS >> Oracle

Създаване на глобална временна таблица в Oracle

-Oracle ни позволява  да създадем временна таблица .

-Дефиницията на временна таблица е видима за всички сесии, но данните във временна таблица са видими само за сесията, която вмъква данните в таблицата.

-Трябва да използваме оператора CREATE GLOBAL TEMPORARY TABLE за да създадем временна таблица.

-Клаузата ON COMMIT указва дали данните в таблицата са специфични за транзакцията (по подразбиране) или специфични за сесия

ИЗТРИВАНЕ НА РЕДОВЕ

Това създава временна таблица, която е специфична за транзакцията. Сесията се обвързва с временната таблица, като транзакциите първо се вмъкват в таблицата. Обвързването изчезва в края на транзакцията. Базата данни съкращава таблицата (изтрива всички редове) след всяко записване.

ЗАПАЗВАНЕ НА РЕДОВЕ

Това създава временна таблица, която е специфична за сесията. Една сесия се свързва с временната таблица с първото вмъкване в таблицата в сесията. Това обвързване изчезва в края на сесията или чрез издаване на ОТСЪЩАНЕ на таблицата в сесията. Базата данни съкращава таблицата, когато прекратите сесията.

Временните таблици са полезни в приложения, където наборът от резултати трябва да бъде буфериран, може би защото е конструиран чрез изпълнение на множество DML операции

СЪЗДАВАНЕ НА ГЛОБАЛНА ВРЕМЕННА ТАБЛИЦА GL_DATA_TEMP
(начална ДАТА,
крайна ДАТА,
gl_id CHAR(20))
ЗА ЗАПАЗВАНЕ НА ИЗТРИВАНЕ НА РЕДОВЕ;

Върху временни таблици могат да се създават индекси . Те също са временни и данните в индекса имат същия обхват на сесия или транзакция като данните в основната таблица..

Ако изразът TRUNCATE е издаден срещу временна таблица, се съкращават само специфичните за сесията данни. Няма ефект върху данните от други сесии.

Ако отмените транзакция, въведените от вас данни се губят, въпреки че дефиницията на таблицата се запазва.

Данните във временните таблици се съхраняват във временни сегменти във временното пространство за таблици, което не генерира повторно изпълнение, така че операциите, използващи глобална временна таблица, са относително по-бързи. Но отмяната все още се генерира  в пространство за таблици за отмяна, което има регистриране за повторно изпълнение. Така че операциите по повторение не са напълно елиминирани в глобалните временни таблици, но са относително по-ниски

Данните във временните таблици се изтриват автоматично в края на сесията на базата данни, дори ако приключи необичайно.

Изгледи могат да се създават спрямо временни таблици и комбинации от временни и постоянни таблици. Те могат да имат тригери, свързани с тях

С версията на Oracle 12.1(12c база данни) беше въведена концепция за временно отмяна, която  позволява сегментите за отмяна за глобални временни таблици да се съхраняват във временното пространство за таблици. Това позволява използването на глобални временни таблици във физически резервни бази данни и бази данни само за четене, както и премахва необходимостта от създаване на повторно изпълнение.

ALTER SYSTEM SET TEMP_UNDO_ENABLED =TRUE;
ALTER SYSTEM SET TEMP_UNDO_ENABLED =FALSE;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да използвам ключовата дума 'as' за псевдоним на таблица в Oracle?

  2. Как да проверите максималния брой разрешени връзки към база данни на Oracle?

  3. Актуализацията на Oracle виси

  4. Изчистете кеша на хибернация 2-ро ниво след ръчна актуализация на DB

  5. Причина, поради която Oracle е чувствителен към малки и големи букви?