

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Approfondimento sulle viste materializzate
<a name="understanding-materialized-views"></a>

## Visualizzazioni
<a name="views"></a>

Una vista è una tabella virtuale basata sul set di risultati di una query `SELECT` SQL. La tabella virtuale contiene i dati recuperati dall'espressione di query, ma il risultato non viene archiviato su disco. Quando si utilizzano le viste, si ottiene sempre la maggior parte up-to-date dei dati perché la query estrae i dati dalle tabelle originali ogni volta che si esegue la query. È possibile creare una vista a partire da una o più tabelle o viste di base. È inoltre possibile inviare query a una vista nello stesso modo in cui si inviano query alle tabelle di base originali.

Nel seguente esempio di query viene illustrato come creare una vista:

```
CREATE VIEW tickets_view
AS    
   select e.eventname,
          sum(s.price) as total_sales
   from sales s
   join event e
       on e.eventid = s.eventid
   group by e.eventname;
```

Nel seguente esempio di query viene illustrato come inviare query a una vista:

```
select eventname,
       total_sales
from ticket_view
where eventname = 'Gotterburg';
```

## Viste materializzate
<a name="materialized-views"></a>

Una vista materializzata è un oggetto di database che contiene i risultati di una query. Ad esempio, una vista materializzata può essere uno degli elementi seguenti:
+ Una copia locale di dati in posizione remota
+ Un sottoinsieme delle righe o delle colonne di una tabella o un risultato di unione
+ Un riepilogo che utilizza una funzione di aggregazione

## Confronto dei tipi di vista
<a name="view-type-comparison"></a>

Nella tabella seguente vengono riepilogate le differenze tra una vista e una vista materializzata.


|  |  |  | 
| --- |--- |--- |
| **Chiave** | **Visualizzazione** | **Vista materializzata** | 
| Definizione | Una tabella virtuale che non archivia alcun dato, ma esegue piuttosto una query SQL definita per ottenere dati da una o più tabelle in un database | Una tabella virtuale definita da una query SQL modificabile, il cui risultato viene però archiviato su disco | 
| Storage | L'espressione di query viene archiviata su disco, ma non il suo risultato | L'espressione di query e il suo risultato vengono entrambi archiviati su disco | 
| Esecuzione | La query che definisce una vista viene eseguita ogni volta che si fa riferimento alla vista in una query | Il risultato della query viene archiviato su disco e l'espressione della query non viene eseguita ogni volta che un utente tenta di recuperare i dati da una vista materializzata | 
| Stato recente dei dati | Fornisce sempre il valore aggiornato più recente dalle tabelle di base | Non fornisce il valore aggiornato più recente se tale valore viene modificato nel database | 
| Costo | Nessun costo di archiviazione | Ha un costo di archiviazione | 
| Progettazione | Per creare una vista standard, è necessario:·  Avere accesso alle tabelle sottostanti·  Utilizzare un'istruzione `SELECT` standard | Per creare una vista materializzata, è necessario:·  Avere accesso alle tabelle sottostanti·  Utilizzare un'istruzione `SELECT` standardÈ anche possibile specificare:·  Se la vista materializzata è inclusa negli snapshot automatici o manuali del cluster, che sono archiviati in Amazon Simple Storage Service (Amazon S3)·  La modalità di distribuzione e ordinamento dei dati nella vista materializzata·  Se la vista materializzata deve essere aggiornata automaticamente con le modifiche più recenti dalle tabelle di base | 
| Utilizzo | Quando i dati vengono consultati o aggiornati di rado | Quando i dati vengono consultati o aggiornati spesso | 