2013-10-29 11 views
7

Qual è la differenza tra una vista e una tabella volatile in Teradata? Per quanto ne so, una tabella volatile viene rimossa con la fine della sessione. Inoltre sono solo io che posso vedere il tavolo volatile al contrario della vista. Ci sono altre differenze significative?Visualizza tabella vs volatile?

risposta

2

Una tabella volatile memorizza i dati fisicamente. È possibile accedere a tali dati più volte durante la sessione. Con una vista i dati vengono raccolti ogni volta che li accedete.

Per velocizzare le query sulle viste, è possibile utilizzare Join Indexes su Teradata. Memorizzano fisicamente i risultati di una determinata selezione e la mantengono quando i dati sottostanti vengono cambiati (inserire, aggiornare, eliminare) automaticamente - come la maggior parte delle cose su un Teradata.

+0

In Teradata, la tabella volatile viene temporaneamente creata un'istanza durante la sessione dell'utente e lo spazio di spool dell'utente viene utilizzato per archiviare i dati all'interno della tabella. –

5

Una tabella volatile è una tabella temporanea che viene mantenuta solo fino alla fine della sessione. Questo è creato di default nel tuo "schema personale" e consuma il tuo spazio di spooling da mantenere.

Una vista è un oggetto che è permanente tra le sessioni, genera dalle tabelle esistenti nell'ambiente in cui ci si trova e non consuma continuamente lo spazio di spool.

In genere utilizzo tabelle volatili per caricare da script in modo da poter elaborare facilmente le informazioni e rilasciare la tabella alla fine di una sessione. Uso le viste per cambiare il modo in cui un utente vede le informazioni che risiedono in altre tabelle o per limitare l'accesso alle informazioni a determinati utenti senza alterare le tabelle di root.

0

Anche la tabella volatile contiene i dati in essa contenuti per la sessione. Se i dati nella tabella di origine cambiano, non lo cambiano automaticamente nella tabella volatile. La vista includerebbe automaticamente le modifiche poiché esegue semplicemente nuovamente l'SQL sulle tabelle di origine.