Teradata - Tipi di tabelle

Teradata supporta i seguenti tipi di tabella per contenere dati temporanei.

  • Tabella derivata
  • Tabella volatile
  • Tabella temporanea globale

Tabella derivata

Le tabelle derivate vengono create, utilizzate e rilasciate all'interno di una query. Vengono utilizzati per memorizzare risultati intermedi all'interno di una query.

Esempio

L'esempio seguente crea una tabella derivata EmpSal con record di dipendenti con stipendio maggiore di 75000.

SELECT 
Emp.EmployeeNo, 
Emp.FirstName, 
Empsal.NetPay 
FROM 
Employee Emp, 
(select EmployeeNo , NetPay 
from Salary
where NetPay >= 75000) Empsal 
where Emp.EmployeeNo = Empsal.EmployeeNo;

Quando la query precedente viene eseguita, restituisce i dipendenti con uno stipendio superiore a 75000.

*** Query completed. One row found. 3 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo            FirstName               NetPay 
-----------  ------------------------------  ----------- 
    103                  Peter                 83000

Tabella volatile

Le tabelle volatili vengono create, utilizzate e rilasciate all'interno di una sessione utente. La loro definizione non è memorizzata nel dizionario dei dati. Contengono i dati intermedi della query che viene utilizzata di frequente. Di seguito è riportata la sintassi.

Sintassi

CREATE [SET|MULTISET] VOALTILE TABLE tablename 
<table definitions> 
<column definitions> 
<index definitions> 
ON COMMIT [DELETE|PRESERVE] ROWS

Esempio

CREATE VOLATILE TABLE dept_stat ( 
   dept_no INTEGER, 
   avg_salary INTEGER, 
   max_salary INTEGER, 
   min_salary INTEGER 
) 
PRIMARY INDEX(dept_no) 
ON COMMIT PRESERVE ROWS;

Quando la query precedente viene eseguita, produce il seguente output.

*** Table has been created. 
*** Total elapsed time was 1 second.

Tabella temporanea globale

La definizione di tabella temporanea globale è memorizzata nel dizionario dei dati e può essere utilizzata da molti utenti / sessioni. Ma i dati caricati nella tabella temporanea globale vengono conservati solo durante la sessione. È possibile materializzare fino a 2000 tabelle temporanee globali per sessione. Di seguito è riportata la sintassi.

Sintassi

CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename 
<table definitions> 
<column definitions> 
<index definitions>

Esempio

CREATE SET GLOBAL TEMPORARY TABLE dept_stat ( 
   dept_no INTEGER, 
   avg_salary INTEGER, 
   max_salary INTEGER, 
   min_salary INTEGER 
) 
PRIMARY INDEX(dept_no);

Quando la query precedente viene eseguita, produce il seguente output.

*** Table has been created. 
*** Total elapsed time was 1 second.