

 Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il [post del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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à.

# REFRESH MATERIALIZED VIEW
<a name="materialized-view-refresh-sql-command"></a>

Aggiorna una vista materializzata

Quando crei una vista materializzata, il suo contenuto riflette lo stato della tabella o delle tabelle del database sottostante in quel momento. I dati nella vista materializzata rimangono invariati, anche quando le applicazioni apportano modifiche ai dati nelle tabelle sottostanti.

Per aggiornare i dati in una vista materializzata, è possibile usare l'istruzione `REFRESH MATERIALIZED VIEW` in qualsiasi momento. Eseguendo questa istruzione, Amazon Redshift identifica le modifiche apportate nella tabella o nelle tabelle di base e quindi applica tali modifiche alla vista materializzata.

Per ulteriori informazioni sulle viste materializzate, consultare [Viste materializzate in Amazon Redshift](materialized-view-overview.md).

## Sintassi
<a name="mv_REFRESH_MATERIALIZED_VIEW-synopsis"></a>

```
REFRESH MATERIALIZED VIEW mv_name [ RESTRICT | CASCADE ]
```

## Parameters
<a name="mv_REFRESH_MATERIALIZED_VIEW-parameters"></a>

*mv\$1name*  
Il nome della vista materializzata da aggiornare.

RESTRICT  
Parola chiave facoltativa. Aggiorna la vista materializzata specificata ma non le viste materializzate dipendenti. L’impostazione predefinita se non viene specificato né RESTRICT né CASCADE.

CASCADE  
Parola chiave facoltativa. Aggiorna la vista materializzata specificata e tutte le viste materializzate dipendenti.

## Note per l’utilizzo
<a name="mv_REFRESH_MARTERIALIZED_VIEW_usage"></a>

Solo il proprietario di una vista materializzata può eseguire un'operazione `REFRESH MATERIALIZED VIEW` su tale vista materializzata. Inoltre, il proprietario deve disporre del privilegio SELECT sulle tabelle di base sottostanti per eseguire correttamente il comando `REFRESH MATERIALIZED VIEW`. 

Il comando `REFRESH MATERIALIZED VIEW` viene eseguito come transazione propria. La semantica delle transazioni Amazon Redshift viene seguita per determinare quali dati dalle tabelle di base sono visibili al comando `REFRESH` o quando le modifiche apportate dal comando `REFRESH` sono rese visibili ad altre transazioni in esecuzione in Amazon Redshift.
+ Nel caso di viste materializzate incrementali, `REFRESH MATERIALIZED VIEW` utilizza solo le righe delle tabelle di base per le quali è già stato eseguito il commit. Pertanto, se l'operazione di aggiornamento viene eseguita dopo un'istruzione DML (Data Manipolation Language) nella stessa transazione, le modifiche di tale istruzione DML non sono visibili per l'aggiornamento. 
+ Per un aggiornamento completo di una vista materializzata, `REFRESH MATERIALIZED VIEW` vede tutte le righe della tabella di base visibili alla transazione di aggiornamento, in base alla semantica delle transazioni Amazon Redshift usuale. 
+ A seconda del tipo di argomento di input, Amazon Redshift supporta ancora l'aggiornamento incrementale per le viste materializzate per le seguenti funzioni con tipi di argomenti di input specifici: DATE (timestamp), DATE\$1PART (data, ora, intervallo, time-tz), DATE\$1TRUNC (timestamp, intervallo).
+ L'aggiornamento incrementale è supportato in una vista materializzata in cui la tabella di base si trova in un'unità di condivisione dati.
+ L'aggiornamento delle viste materializzate condivise da cluster di condivisione dati remoti non è supportato per le viste materializzate che contengono riferimenti ad altre viste materializzate, tabelle Spectrum, tabelle definite in un cluster Redshift diverso o. UDFs Tali viste materializzate possono essere aggiornate dal cluster locale (produttore).

Alcune operazioni in Amazon Redshift interagiscono con le viste materializzate. Alcune di queste operazioni potrebbero forzare un'operazione `REFRESH MATERIALIZED VIEW` per ricalcolare completamente la vista materializzata, anche se la query che definisce la vista materializzata utilizza solo le funzionalità SQL idonee per l'aggiornamento incrementale. Ad esempio:
+ Le operazioni vacuum in background potrebbero essere bloccate se le viste materializzate non vengono aggiornate. Dopo un periodo di soglia definito internamente, è possibile eseguire l'operazione di vacuum. Con l'operazione vacuum, tutte le viste materializzate dipendenti vengono contrassegnate come da rielaborare al successivo aggiornamento (anche se sono di tipo incrementale). Per informazioni su VACUUM, vedere [VACUUM](r_VACUUM_command.md). Per ulteriori informazioni sugli eventi e le modifiche allo stato, consultare [STL\$1MV\$1STATE](r_STL_MV_STATE.md).
+ Alcune operazioni avviate dall'utente sulle tabelle di base impongono che una vista materializzata venga rielaborata completamente alla successiva esecuzione dell'operazione REFRESH. Esempi di tali operazioni sono un VACUUM richiamato manualmente, un ridimensionamento classico, un'operazione ALTER DISTKEY, un'operazione ALTER SORTKEY e un'operazione di troncatura. In alcuni casi le operazioni automatiche possono anche comportare il ricalcolo completo di una vista materializzata alla successiva esecuzione di un’operazione REFRESH. Ad esempio, un’operazione di eliminazione del vacuum automatico può causare un ricalcolo completo. Per ulteriori informazioni sugli eventi e le modifiche allo stato, consultare [STL\$1MV\$1STATE](r_STL_MV_STATE.md). 

## Aggiornamento a cascata
<a name="mv_REFRESH_MATERIALIZED_VIEW_cascading"></a>

L'opzione CASCADE aggiorna la vista materializzata specificata e tutte le viste materializzate che ne dipendono, in ordine di dipendenza: la base viene REFRESHed prima della vista in alto (ordinamento MVs topologico). MVs Ciò consente di aggiornare un insieme annidato di viste materializzate con un unico comando.

L’opzione RESTRICT (impostazione predefinita se non viene specificato né RESTRICT né CASCADE) aggiorna solo la vista materializzata specificata.

Quando utilizzi l’opzione CASCADE, si applicano le seguenti regole:
+ Solo il proprietario della vista materializzata o un utente con privilegi avanzati può eseguire il comando `REFRESH MATERIALIZED VIEW ... CASCADE`.
+ Se una qualsiasi delle viste materializzate nella cascata non può essere aggiornata, l’intera operazione a cascata viene interrotta.

La funzionalità di aggiornamento a cascata è supportata solo se annidata su viste materializzate locali e in streaming MVs . Le viste materializzate con altri tipi di sorgenti, come Spectrum o Condivisione dei dati, non sono supportate in modalità a cascata. CASCADE esegue l'aggiornamento in un'unica transazione per tutte le unità annidate. MVs

## Aggiornamento incrementale per le viste materializzate in un’unità di condivisione dati
<a name="mv_REFRESH_MATERIALIZED_VIEW_datashare"></a>

 Amazon Redshift supporta l’aggiornamento automatico e incrementale per le viste materializzate in un’unità di condivisione dati del consumer quando le tabelle di base sono condivise. L’aggiornamento incrementale è un’operazione in cui Amazon Redshift identifica le modifiche nella tabella o nelle tabelle di base avvenute dopo l’aggiornamento precedente e aggiorna solo i record corrispondenti nella vista materializzata. Per ulteriori informazioni su questo comportamento, consulta [CREATE MATERIALIZED VIEW](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-create-sql-command.html#mv_CREATE_MARTERIALIZED_VIEW_datashare). 

## Limitazioni per l'aggiornamento incrementale
<a name="mv_REFRESH_MARTERIALIZED_VIEW_limitations"></a>

Amazon Redshift attualmente non supporta l'aggiornamento incrementale per le viste materializzate definite con una query utilizzando uno dei seguenti elementi SQL:
+ OUTER JOIN (RIGHT, LEFT o FULL).
+ Operazioni insiemistiche: UNION, INTERSECT, EXCEPT, MINUS
+ UNION ALL quando si verifica in una sottoquery e una funzione di aggregazione o una clausola GROUP BY è presente nella query o la vista materializzata di destinazione contiene una chiave di ordinamento.
+ Le funzioni di aggregazione MEDIAN, PERCENTILE\$1CONT, MAX, MIN, LISTAGG, STDDEV\$1SAMP, STDDEV\$1POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE e le funzioni di aggregazione bitwise.
**Nota**  
Sono supportate le funzioni di aggregazione COUNT, SUM, MIN, MAX e AVG.
+ Funzioni di aggregazione di tipo DISTINCT, come DISTINCT COUNT, DISTINCT SUM, ecc.
+ Funzioni finestra
+ Query che utilizza tabelle temporanee per l'ottimizzazione delle query, ad esempio l'ottimizzazione delle espressioni secondarie comuni.
+ Sottoquery
+ Tabelle esterne che fanno riferimento ai seguenti formati nella query che definisce la vista materializzata. 
  +  Delta Lake 
  +  Hudi 

  L’aggiornamento incrementale è supportato per le viste materializzate definite con formati diversi da quelli precedenti. Per ulteriori informazioni, consulta [Viste materializzate per le tabelle di data lake esterne in Amazon Redshift SpectrumViste materializzate per le tabelle di data lake esterne](materialized-view-external-table.md). 
+ Funzioni mutabili, come le funzioni data-ora, funzioni RANDOM e funzioni definite dall'utente non stabili.
+ Per le limitazioni relative all’aggiornamento incrementale per le integrazioni Zero-ETL, consulta [Considerazioni sull’utilizzo di integrazioni Zero-ETL con Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl.reqs-lims.html).
+ Accesso alle tabelle da più di un database.

Per ulteriori informazioni sulle limitazioni della vista materializzata, incluso l'effetto di operazioni in background come VACUUM sulle operazioni di aggiornamento della vista materializzata, consulta [Note per l’utilizzo](#mv_REFRESH_MARTERIALIZED_VIEW_usage).

## Esempi
<a name="mv_REFRESH_MARTERIALIZED_VIEW_examples"></a>

Nell'esempio seguente viene eseguito l'aggiornamento della vista materializzata `tickets_mv`.

```
REFRESH MATERIALIZED VIEW tickets_mv;
```

L’esempio seguente aggiorna la vista materializzata `products_mv` e tutte le viste materializzate dipendenti:

```
REFRESH MATERIALIZED VIEW products_mv CASCADE; 
```