sql >> Databáze >  >> RDS >> Oracle

Vytvoření globální dočasné tabulky v Oracle

-Oracle nám umožňuje  vytvořit dočasnou tabulku .

-Definice dočasné tabulky je viditelná pro všechny relace, ale data v dočasné tabulce jsou viditelná pouze pro relaci, která vkládá data do tabulky.

-K vytvoření dočasné tabulky musíme použít příkaz CREATE GLOBAL TEMPORARY TABLE.

– Klauzule ON COMMIT uvádí, zda jsou data v tabulce specifická pro transakci (výchozí nastavení) nebo pro relaci

ODSTRANIT ŘÁDKY

Tím se vytvoří dočasná tabulka, která je specifická pro transakci. Relace se stane vázána na dočasnou tabulku s transakcemi nejprve vloženými do tabulky. Vazba na konci transakce zmizí. Databáze zkrátí tabulku (smaže všechny řádky) po každém potvrzení.

ZACHOVAT ŘÁDKY

Tím se vytvoří dočasná tabulka, která je specifická pro relaci. Relace se naváže na dočasnou tabulku s prvním vložením do tabulky v relaci. Tato vazba zmizí na konci relace nebo vydáním ZKRÁCENÍ tabulky v relaci. Když relaci ukončíte, databáze zkrátí tabulku.

Dočasné tabulky jsou užitečné v aplikacích, kde má být sada výsledků ukládána do vyrovnávací paměti, možná proto, že je konstruována spuštěním více operací DML

CREATE GLOBAL TEMPORARY TABLE GL_DATA_TEMP
(datum zahájení DATE,
datum ukončení,
gl_id CHAR(20))
ON COMMIT DELETE ROWS;

Indexy lze vytvářet na dočasných tabulkách . Jsou také dočasné a data v indexu mají stejný rozsah relace nebo transakce jako data v podkladové tabulce.

Pokud je vydán příkaz TRUNCATE pro dočasnou tabulku, budou zkrácena pouze data specifická pro relaci. Na data ostatních relací to nemá žádný vliv.

Pokud transakci vrátíte zpět, data, která jste zadali, budou ztracena, ačkoli definice tabulky přetrvává.

Data v dočasných tabulkách jsou uložena v dočasných segmentech v dočasném tabulkovém prostoru, který negeneruje žádné opakování, takže operace s globální dočasnou tabulkou jsou relativně rychlejší. Zpět se však stále generuje v tabulkovém prostoru zpět, který má znovu protokolování. Operace redo tedy nejsou v globálních dočasných tabulkách zcela odstraněny, ale jsou relativně nižší

Data v dočasných tabulkách jsou automaticky odstraněna na konci relace databáze, i když skončí abnormálně.

Pohledy lze vytvářet proti dočasným tabulkám a kombinacím dočasných a trvalých tabulek. Mohou být s nimi spojeny spouštěče

S vydáním Oracle 12.1(12c database) byl představen koncept dočasného vrácení zpět, který umožňuje ukládat segmenty zpět pro globální dočasné tabulky do dočasného tabulkového prostoru. To umožňuje použití globálních dočasných tabulek ve fyzických rezervních databázích a databázích pouze pro čtení a také odpadá nutnost vytvářet znovu.

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


  1. Základy tabulkových výrazů, 2. část – Odvozené tabulky, logické úvahy

  2. Jak vytisknout výsledek Oracle SQL do souboru ve Windows?

  3. PostgreSQL dotaz s 'ANY' nefunguje

  4. Jak zabezpečit MySQL:Část druhá