

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

# TABELLA CACHE
<a name="sql-commands-cache-table"></a>

Il comando CACHE TABLE memorizza nella cache i dati di una tabella esistente o crea e memorizza nella cache una nuova tabella contenente i risultati delle query.

**Nota**  
I dati memorizzati nella cache persistono per l'intera query.

La sintassi, gli argomenti e alcuni esempi provengono da [Apache](https://spark.apache.org/docs/latest/api/sql/) Spark SQL Reference.

## Sintassi
<a name="CACHE-TABLE-syntax"></a>

Il comando CACHE TABLE supporta tre modelli di sintassi:

Con AS (senza parentesi): crea e memorizza nella cache una nuova tabella in base ai risultati della query. 

```
CACHE TABLE cache_table_identifier AS query;
```

Con AS e parentesi: funziona in modo simile alla prima sintassi ma utilizza le parentesi per raggruppare in modo esplicito la query.

```
CACHE TABLE cache_table_identifier AS ( query );
```

Senza AS: memorizza nella cache una tabella esistente, utilizzando l'istruzione SELECT per filtrare le righe da memorizzare nella cache. 

```
CACHE TABLE cache_table_identifier query; 
```

Dove:
+ Tutte le istruzioni devono terminare con un punto e virgola (;)
+ `query`è in genere un'istruzione SELECT
+ Le parentesi attorno alla query sono opzionali con AS
+ La parola chiave AS è facoltativa

## Parameters
<a name="CACHE-TABLE-parameters"></a>

 *cache\$1table\$1identifier*   
Il nome della tabella memorizzata nella cache. Può includere un qualificatore del nome del database opzionale.

 *AS*   
Una parola chiave utilizzata per creare e memorizzare nella cache una nuova tabella dai risultati delle query.

*query*  
Un'istruzione SELECT o un'altra query che definisce i dati da memorizzare nella cache.

## Esempi
<a name="CACHE-TABLE-examples"></a>

Negli esempi seguenti, la tabella memorizzata nella cache persiste per l'intera query. Dopo la memorizzazione nella cache, le query successive a cui fanno riferimento *cache\$1table\$1identifier* verranno lette a partire dalla versione memorizzata nella cache anziché essere ricalcolate o lette. *sourceTable* Ciò può migliorare le prestazioni delle query per i dati a cui si accede di frequente. 

### Crea e memorizza nella cache una tabella filtrata dai risultati delle query
<a name="create-cache-filterd-table"></a>

Il primo esempio dimostra come creare e memorizzare nella cache una nuova tabella dai risultati delle query. Questo comando utilizza la `AS` parola chiave senza parentesi attorno all'istruzione. `SELECT` Crea una nuova tabella denominata '`cache_table_identifier`' contenente solo le righe da '' dove lo stato è `sourceTable` '. `active'` Esegue la query, memorizza i risultati nella nuova tabella e memorizza nella cache il contenuto della nuova tabella. Il '`sourceTable`' originale rimane invariato e le query successive devono fare riferimento a '`cache_table_identifier`' per utilizzare i dati memorizzati nella cache.

```
CACHE TABLE cache_table_identifier AS
    SELECT * FROM sourceTable 
    WHERE status = 'active';
```

### Memorizza i risultati delle query con istruzioni SELECT tra parentesi
<a name="cache-query-results"></a>

Il secondo esempio dimostra come memorizzare nella cache i risultati di una query come nuova tabella con un nome specificato (`cache_table_identifier`), utilizzando parentesi attorno all'istruzione. `SELECT` Questo comando crea una nuova tabella denominata '`cache_table_identifier`' contenente solo le righe da '' dove lo stato è `sourceTable` '. `active'` Esegue la query, archivia i risultati nella nuova tabella e memorizza nella cache il contenuto della nuova tabella. Il '`sourceTable`' originale rimane invariato. Le query successive devono fare riferimento a '`cache_table_identifier`' per utilizzare i dati memorizzati nella cache.

```
CACHE TABLE cache_table_identifier AS (
    SELECT * FROM sourceTable 
    WHERE status = 'active'
);
```

### Memorizza nella cache una tabella esistente con condizioni di filtro
<a name="cache-existing-table"></a>

Il terzo esempio dimostra come inserire nella cache una tabella esistente utilizzando una sintassi diversa. Questa sintassi, che omette la parola chiave '`AS`' e le parentesi, in genere memorizza nella cache le righe specificate da una tabella esistente denominata '' `cache_table_identifier` anziché creare una nuova tabella. L'`SELECT`istruzione funge da filtro per determinare quali righe memorizzare nella cache.

**Nota**  
Il comportamento esatto di questa sintassi varia tra i sistemi di database. Verifica sempre la sintassi corretta per il tuo servizio specifico AWS .

```
CACHE TABLE cache_table_identifier 
SELECT * FROM sourceTable 
WHERE status = 'active';
```