

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 加入提示
<a name="join-hints"></a>

联接提示建议查询执行的联接策略。语法、参数和一些示例来自《[Apache Spark SQL 参考](https://spark.apache.org/docs/latest/sql-ref-syntax-qry-select-hints.html#join-hints)》以获取更多信息

### 广播
<a name="broadcast-hint"></a>

建议 AWS Clean Rooms 使用广播加入。无论 autoBroadcastJoin阈值如何，带有提示的加入方都会被广播。如果联接的两边都有广播提示，则将广播大小较小的那个（基于统计数据）。

*别名：*广播加入、MAPJOIN

*参数：*表标识符（可选）

*示例：*

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

建议 AWS Clean Rooms 使用随机排序合并联接。

*别名：*SHUFFLE\$1MERGE、MERGEJOIN

*参数：*表标识符（可选）

*示例：*

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

### SHUFF\$1HASH
<a name="shuffle-hash-hint"></a>

建议 AWS Clean Rooms 使用 shuffle 哈希联接。如果双方都有 shuffle 哈希提示，则查询优化器会选择较小的一方（基于统计数据）作为构建方。

*参数：*表标识符（可选）

*示例：*

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

### SHUFFLE\$1REPLICATE\$1NL
<a name="shuffle-replicate-nl-hint"></a>

建议 AWS Clean Rooms 使用 shuffle-and-replicate嵌套循环联接。

*参数：*表标识符（可选）

*示例：*

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

### Spark SQL 中的故障排除提示
<a name="join-hint-warning-cases"></a>

下表显示了在 SparkSQL 中未应用提示的常见场景。有关更多信息，请参阅 [注意事项和限制](sql-commands-hints-spark.md#hints-usage-notes)。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/clean-rooms/latest/sql-reference/join-hints.html)