

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

O comando CACHE TABLE armazena em cache os dados de uma tabela existente ou cria e armazena em cache uma nova tabela contendo os resultados da consulta.

**nota**  
Os dados em cache persistem durante toda a consulta.

A sintaxe, os argumentos e alguns exemplos vêm da Referência SQL do [Apache Spark](https://spark.apache.org/docs/latest/api/sql/).

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

O comando CACHE TABLE suporta três padrões de sintaxe:

Com AS (sem parênteses): cria e armazena em cache uma nova tabela com base nos resultados da consulta. 

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

Com AS e parênteses: funciona de forma semelhante à primeira sintaxe, mas usa parênteses para agrupar explicitamente a consulta.

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

Sem AS: armazena em cache uma tabela existente, usando a instrução SELECT para filtrar quais linhas devem ser armazenadas em cache. 

```
CACHE TABLE cache_table_identifier query; 
```

Em que:
+ Todas as declarações devem terminar com ponto e vírgula (;)
+ `query`normalmente é uma instrução SELECT
+ Os parênteses ao redor da consulta são opcionais com AS
+ A palavra-chave AS é opcional

## Parâmetros
<a name="CACHE-TABLE-parameters"></a>

 *identificador\$1tabela\$1cache*   
O nome da tabela em cache. Pode incluir um qualificador de nome de banco de dados opcional.

 *AS*   
Uma palavra-chave usada ao criar e armazenar em cache uma nova tabela a partir dos resultados da consulta.

*query*  
Uma instrução SELECT ou outra consulta que define os dados a serem armazenados em cache.

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

Nos exemplos a seguir, a tabela em cache persiste durante toda a consulta. Após o armazenamento em cache, as consultas subsequentes que fazem referência *cache\$1table\$1identifier* serão lidas da versão em cache em vez de serem recalculadas ou lidas. *sourceTable* Isso pode melhorar o desempenho da consulta para dados acessados com frequência. 

### Crie e armazene em cache uma tabela filtrada a partir dos resultados da consulta
<a name="create-cache-filterd-table"></a>

O primeiro exemplo demonstra como criar e armazenar em cache uma nova tabela a partir dos resultados da consulta. Esse comando usa a `AS` palavra-chave sem parênteses ao redor da declaração. `SELECT` Ele cria uma nova tabela chamada '`cache_table_identifier`' contendo somente as linhas de '`sourceTable`' onde o status é '`active'`. Ele executa a consulta, armazena os resultados na nova tabela e armazena em cache o conteúdo da nova tabela. O '`sourceTable`' original permanece inalterado e as consultas subsequentes devem fazer referência a '`cache_table_identifier`' para usar os dados em cache.

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

### Resultados da consulta em cache com instruções SELECT entre parênteses
<a name="cache-query-results"></a>

O segundo exemplo demonstra como armazenar em cache os resultados de uma consulta como uma nova tabela com um nome especificado (`cache_table_identifier`), usando parênteses ao redor da instrução. `SELECT` Esse comando cria uma nova tabela chamada '`cache_table_identifier`' contendo somente as linhas de '`sourceTable`' em que o status é '`active'`. Ele executa a consulta, armazena os resultados na nova tabela e armazena em cache o conteúdo da nova tabela. O '`sourceTable`' original permanece inalterado. As consultas subsequentes devem fazer referência a '`cache_table_identifier`' para usar os dados em cache.

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

### Armazene em cache uma tabela existente com condições de filtro
<a name="cache-existing-table"></a>

O terceiro exemplo demonstra como armazenar em cache uma tabela existente usando uma sintaxe diferente. Essa sintaxe, que omite a palavra-chave '`AS`' e os parênteses, normalmente armazena em cache as linhas especificadas de uma tabela existente chamada '`cache_table_identifier`' em vez de criar uma nova tabela. A `SELECT` instrução atua como um filtro para determinar quais linhas devem ser armazenadas em cache.

**nota**  
O comportamento exato dessa sintaxe varia entre os sistemas de banco de dados. Sempre verifique a sintaxe correta para seu AWS serviço específico.

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