

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

# Suggerimenti per il partizionamento
<a name="partitioning-hints"></a>

I suggerimenti per il partizionamento controllano la distribuzione dei dati tra i nodi esecutori. Quando vengono specificati più suggerimenti di partizionamento, più nodi vengono inseriti nel piano logico, ma il suggerimento più a sinistra viene selezionato dall'ottimizzatore.

### COALESCE
<a name="coalesce-hint"></a>

Riduce il numero di partizioni al numero di partizioni specificato.

*Parametri:* Valore numerico (obbligatorio), deve essere un numero intero positivo compreso tra 1 e 2147483647

*Esempi:*

```
-- Reduce to 5 partitions
SELECT /*+ COALESCE(5) */ employee_id, salary
FROM employees;
```

### RIPARTIZIONAMENTO
<a name="repartition-hint"></a>

Ripartiziona i dati nel numero specificato di partizioni utilizzando le espressioni di partizionamento specificate. Utilizza la distribuzione round-robin.

*Parametri:*
+ Valore numerico (opzionale): numero di partizioni; deve essere un numero intero positivo compreso tra 1 e 2147483647
+ Identificatori di colonna (facoltativi): colonne in base alle quali partizionare; queste colonne devono esistere nello schema di input.
+ Se vengono specificati entrambi, il valore numerico deve essere al primo posto

*Esempi:*

```
-- Repartition to 10 partitions
SELECT /*+ REPARTITION(10) */ *
FROM employees;

-- Repartition by column
SELECT /*+ REPARTITION(department) */ *
FROM employees;

-- Repartition to 8 partitions by department
SELECT /*+ REPARTITION(8, department) */ *
FROM employees;

-- Repartition by multiple columns
SELECT /*+ REPARTITION(8, department, location) */ *
FROM employees;
```

### RIPARTIZIONE\$1PER\$1INTERVALLO
<a name="repartition-by-range-hint"></a>

Ripartiziona i dati nel numero specificato di partizioni utilizzando il partizionamento a intervalli sulle colonne specificate.

*Parametri:*
+ Valore numerico (opzionale): numero di partizioni; deve essere un numero intero positivo compreso tra 1 e 2147483647
+ Identificatori di colonna (facoltativi): colonne in base alle quali partizionare; queste colonne devono esistere nello schema di input.
+ Se vengono specificati entrambi, il valore numerico deve essere al primo posto

*Esempi:*

```
SELECT /*+ REPARTITION_BY_RANGE(10) */ *
FROM employees;

-- Repartition by range on age column
SELECT /*+ REPARTITION_BY_RANGE(age) */ *
FROM employees;

-- Repartition to 5 partitions by range on age
SELECT /*+ REPARTITION_BY_RANGE(5, age) */ *
FROM employees;

-- Repartition by range on multiple columns
SELECT /*+ REPARTITION_BY_RANGE(5, age, salary) */ *
FROM employees;
```

### RIEQUILIBRARE
<a name="rebalance-hint"></a>

Riequilibra le partizioni di output dei risultati della query in modo che ogni partizione sia di dimensioni ragionevoli (né troppo piccola né troppo grande). Si tratta di un'operazione che richiede il massimo sforzo: se ci sono degli scostamenti, AWS Clean Rooms dividerà le partizioni inclinate per renderle non troppo grandi. Questo suggerimento è utile quando è necessario scrivere il risultato di una query su una tabella per evitare file troppo piccoli o troppo grandi.

*Parametri:*
+ Valore numerico (opzionale): numero di partizioni; deve essere un numero intero positivo compreso tra 1 e 2147483647
+ Identificatori di colonna (facoltativi): le colonne devono apparire nell'elenco di output SELECT
+ Se vengono specificati entrambi, il valore numerico deve essere al primo posto

*Esempi:*

```
-- Rebalance to 10 partitions
SELECT /*+ REBALANCE(10) */ employee_id, name
FROM employees;

-- Rebalance by specific columns in output
SELECT /*+ REBALANCE(employee_id, name) */ employee_id, name
FROM employees;

-- Rebalance to 8 partitions by specific columns
SELECT /*+ REBALANCE(8, employee_id, name) */ employee_id, name, department
FROM employees;
```