

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

# Differenze nella scansione di una tabella
<a name="SQLtoNoSQL.ReadData.Scan"></a>

In SQL, un'istruzione `SELECT` senza una clausola `WHERE` restituirà ogni riga di una tabella. In Amazon DynamoDB, l'operazione `Scan` fa la stessa cosa. In entrambi i casi, puoi recuperare tutti gli elementi o solo alcuni di essi.

Se stai utilizzando un database SQL o NoSQL, le scansioni devono essere utilizzate con parsimonia perché possono consumare grandi quantità di risorse di sistema. A volte una scansione è appropriata (come la scansione di una piccola tabella) o inevitabile (come ad esempio un'esportazione di massa di dati). Tuttavia, come regola generale, devi progettare le applicazioni in modo da evitare di eseguire le scansioni. Per ulteriori informazioni, consulta [Esecuzione di query in DynamoDB](Query.md).

**Nota**  
L'esecuzione di un'esportazione in blocco crea anche almeno 1 file per partizione. Tutti gli elementi di ogni file provengono dal keyspace con hash di quella particolare partizione.

**Topics**
+ [Scansione di una tabella con SQL](#SQLtoNoSQL.ReadData.Scan.SQL)
+ [Scansione di una tabella in DynamoDB](#SQLtoNoSQL.ReadData.Scan.DynamoDB)

## Scansione di una tabella con SQL
<a name="SQLtoNoSQL.ReadData.Scan.SQL"></a>

Utilizzando SQL, puoi scansionare una tabella e recuperare tutti i dati usando un'istruzione `SELECT` senza specificare una clausola `WHERE`. Puoi richiedere una o più colonne nel risultato. In alternativa, puoi richiedere tutte le colonne se usi il carattere jolly (\$1).

Di seguito vengono illustrati alcuni esempi di utilizzo dell'istruzione `SELECT`.

```
/* Return all of the data in the table */
SELECT * FROM Music;
```

```
/* Return all of the values for Artist and Title */
SELECT Artist, Title FROM Music;
```

## Scansione di una tabella in DynamoDB
<a name="SQLtoNoSQL.ReadData.Scan.DynamoDB"></a>

In Amazon DynamoDB, puoi utilizzare l’API DynamoDB, o [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html), un linguaggio di query compatibile con SQL, per eseguire una scansione su una tabella.

------
#### [ DynamoDB API ]

Con l’API di DynamoDB, puoi utilizzare l’operazione `Scan` per restituire una o più voci e i relativi attributi accedendo a ogni voce in una tabella o un indice secondario.

```
// Return all of the data in the table
{
    TableName:  "Music"
}
```

```
// Return all of the values for Artist and Title
{
    TableName:  "Music",
    ProjectionExpression: "Artist, Title"
}
```

L'operazione `Scan` fornisce anche il parametro `FilterExpression` che puoi utilizzare per scartare gli elementi che non vuoi visualizzare nei risultati. Un `FilterExpression` viene applicato dopo la scansione dell'intera tabella, ma prima che i risultati ti vengano restituiti. ti viene comunque addebitato l'intero `Scan`, anche se vengono restituiti solo pochi item corrispondenti.

------
#### [ PartiQL for DynamoDB ]

Con PartiQL, esegui una scansione utilizzando l’operazione `ExecuteStatement` per restituire tutti i contenuti di una tabella utilizzando la dichiarazione `Select`.

```
SELECT AlbumTitle, Year, Price
FROM Music
```

Si noti che questa istruzione restituirà tutti gli elementi per nella tabella Music. 

Per esempi di codice che utilizzano `Select` e `ExecuteStatement`, consulta [Istruzioni SELECT PartiQL per DynamoDB](ql-reference.select.md).

------