

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Conseils de partitionnement
<a name="partitioning-hints"></a>

Les conseils de partitionnement contrôlent la distribution des données entre les nœuds exécuteurs. Lorsque plusieurs conseils de partitionnement sont spécifiés, plusieurs nœuds sont insérés dans le plan logique, mais l'indicateur le plus à gauche est sélectionné par l'optimiseur.

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

Réduit le nombre de partitions au nombre de partitions spécifié.

*Paramètres :* valeur numérique (obligatoire) - doit être un entier positif compris entre 1 et 2147483647

*Exemples :*

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

### RÉPARTITION
<a name="repartition-hint"></a>

Repartitionne les données sur le nombre de partitions spécifié à l'aide des expressions de partitionnement spécifiées. Utilise la distribution circulaire.

*Paramètres :*
+ Valeur numérique (facultatif) - nombre de partitions ; doit être un entier positif compris entre 1 et 2147483647
+ Identifiants de colonne (facultatif) - colonnes à partitionner ; ces colonnes doivent exister dans le schéma d'entrée.
+ Si les deux sont spécifiés, la valeur numérique doit apparaître en premier

*Exemples :*

```
-- 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;
```

### RÉPARTITION PAR PLAGE
<a name="repartition-by-range-hint"></a>

Repartitionne les données sur le nombre de partitions spécifié en utilisant le partitionnement par plage sur les colonnes spécifiées.

*Paramètres :*
+ Valeur numérique (facultatif) - nombre de partitions ; doit être un entier positif compris entre 1 et 2147483647
+ Identifiants de colonne (facultatif) - colonnes à partitionner ; ces colonnes doivent exister dans le schéma d'entrée.
+ Si les deux sont spécifiés, la valeur numérique doit apparaître en premier

*Exemples :*

```
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;
```

### RÉÉQUILIBRER
<a name="rebalance-hint"></a>

Rééquilibre les partitions de sortie des résultats de la requête afin que chaque partition soit d'une taille raisonnable (ni trop petite ni trop grande). Il s'agit d'une opération très simple : s'il y a des biais, les partitions asymétriques AWS Clean Rooms seront divisées pour qu'elles ne soient pas trop grandes. Cette astuce est utile lorsque vous devez écrire le résultat d'une requête dans une table afin d'éviter des fichiers trop petits ou trop volumineux.

*Paramètres :*
+ Valeur numérique (facultatif) - nombre de partitions ; doit être un entier positif compris entre 1 et 2147483647
+ Identifiants de colonne (facultatif) : les colonnes doivent apparaître dans la liste de sortie SELECT
+ Si les deux sont spécifiés, la valeur numérique doit apparaître en premier

*Exemples :*

```
-- 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;
```