

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Únase a las sugerencias
<a name="join-hints"></a>

Los consejos de unión sugieren estrategias de unión para la ejecución de consultas. La sintaxis, los argumentos y algunos ejemplos provienen de la [referencia SQL de Apache Spark](https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-hints.html#join-hints) para obtener más información

### EMISIÓN
<a name="broadcast-hint"></a>

Sugiere AWS Clean Rooms utilizar broadcast join. La parte de unión con la sugerencia se emitirá independientemente del autoBroadcastJoin umbral. Si ambos lados de la unión tienen las sugerencias emitidas, se emitirá la que tenga el tamaño más pequeño (según las estadísticas).

*Alias:* BROADCASTJOIN, MAPJOIN

*Parámetros: identificadores* de tabla (opcionales)

*Ejemplos*:

```
-- Broadcast a specific table
SELECT /*+ BROADCAST(students) */ e.name, s.course
FROM employees e JOIN students s ON e.id = s.id;

-- Broadcast multiple tables
SELECT /*+ BROADCASTJOIN(s, d) */ *
FROM employees e
JOIN students s ON e.id = s.id
JOIN departments d ON e.dept_id = d.id;
```

### MERGE
<a name="merge-hint"></a>

Sugiere que se AWS Clean Rooms utilice la combinación, la ordenación, la combinación y la combinación.

*Alias:* SHUFFLE\_MERGE, MERGEJOIN

*Parámetros:* identificadores de tabla (opcionales)

*Ejemplos*:

```
-- Use merge join for a specific table
SELECT /*+ MERGE(employees) */ *
FROM employees e JOIN students s ON e.id = s.id;

-- Use merge join for multiple tables
SELECT /*+ MERGEJOIN(e, s, d) */ *
FROM employees e
JOIN students s ON e.id = s.id
JOIN departments d ON e.dept_id = d.id;
```

### SHUFFLE\_HASH
<a name="shuffle-hash-hint"></a>

Sugiere AWS Clean Rooms usar shuffle hash join. Si ambos lados tienen las sugerencias de mezcla aleatoria, el optimizador de consultas elige el lado más pequeño (según las estadísticas) como el lado de construcción.

*Parámetros:* identificadores de tabla (opcionales)

*Ejemplos*:

```
-- Use shuffle hash join
SELECT /*+ SHUFFLE_HASH(students) */ *
FROM employees e JOIN students s ON e.id = s.id;
```

### SHUFFLE\_REPLICATE\_NL
<a name="shuffle-replicate-nl-hint"></a>

Sugiere utilizar una unión de bucles anidada. AWS Clean Rooms shuffle-and-replicate

*Parámetros:* identificadores de tabla (opcionales)

*Ejemplos*:

```
-- Use shuffle-replicate nested loop join
SELECT /*+ SHUFFLE_REPLICATE_NL(students) */ *
FROM employees e JOIN students s ON e.id = s.id;
```

### Consejos para la solución de problemas en Spark SQL
<a name="join-hint-warning-cases"></a>

La siguiente tabla muestra situaciones comunes en las que no se aplican sugerencias en SparkSQL. Para obtener información adicional, consulta [Consideraciones y limitaciones](sql-commands-hints-spark.md#hints-usage-notes).


| Caso de uso | Consulta de ejemplo | 
| --- | --- | 
| No se encontró la referencia de la tabla | <pre>SELECT /*+ BROADCAST(fake_table) */ *<br />FROM employees e<br />INNER JOIN students s ON e.eid = s.sid;</pre> | 
| La tabla no participa en la operación de unión | <pre>SELECT /*+ BROADCAST(s) */ *<br />FROM students s<br />WHERE s.age > 25;</pre> | 
| Referencia de tabla en una subconsulta anidada | <pre>SELECT /*+ BROADCAST(s) */ *<br />FROM employees e<br />INNER JOIN (SELECT * FROM students s WHERE s.age > 20) sub<br />ON e.eid = sub.sid;</pre> | 
| Nombre de columna en lugar de referencia de tabla | <pre>SELECT /*+ BROADCAST(e.eid) */ *<br />FROM employees e<br />INNER JOIN students s ON e.eid = s.sid;</pre> | 
| Sugerencia sin los parámetros necesarios | <pre>SELECT /*+ BROADCAST */ *<br />FROM employees e<br />INNER JOIN students s ON e.eid = s.sid;</pre> | 
| Nombre de la tabla base en lugar del alias de la tabla | <pre>SELECT /*+ BROADCAST(employees) */ *<br />FROM employees e<br />INNER JOIN students s ON e.eid = s.sid;</pre> | 