

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 提示
<a name="sql-commands-hints-spark"></a>

SQL 分析的提示提供最佳化指令，可引導 中的查詢執行策略 AWS Clean Rooms，讓您改善查詢效能並降低運算成本。提示會建議 Spark 分析引擎應如何產生其執行計畫。

## 語法
<a name="hints-syntax"></a>

```
SELECT /*+ {{hint_name}}({{parameters}}), {{hint_name}}({{parameters}}) */ {{column_list}}
FROM {{table_name}};
```

提示使用註解樣式語法內嵌在 SQL 查詢中，且必須直接放置在 SELECT 關鍵字之後。

## 支援的提示類型
<a name="supported-hint-types"></a>

AWS Clean Rooms 支援兩種類型的提示：聯結提示和分割提示。

**Topics**
+ [聯結提示](join-hints.md)
+ [分割提示](partitioning-hints.md)

## 結合多個提示
<a name="combining-multiple-hints"></a>

您可以在單一查詢中指定多個提示，方法是使用逗號分隔它們：

```
-- Combine join and partitioning hints
SELECT /*+ BROADCAST(d), REPARTITION(8) */ e.name, d.dept_name
FROM employees e JOIN departments d ON e.dept_id = d.id;

-- Multiple join hints
SELECT /*+ BROADCAST(s), MERGE(d) */ *
FROM employees e
JOIN students s ON e.id = s.id
JOIN departments d ON e.dept_id = d.id;

-- Hints within separate hint blocks within the same query
SELECT /*+ REPARTITION(100) */ /*+ COALESCE(500) */ /*+ REPARTITION_BY_RANGE(3, c) */ * FROM t;
```

## 考量和限制
<a name="hints-usage-notes"></a>
+ 提示是最佳化建議，而不是命令。查詢最佳化工具可能會根據資源限制或執行條件忽略提示。
+ 提示直接內嵌在 CreateAnalysisTemplate 和 StartProtectedQuery APIs SQL 查詢字串中。
+ 提示必須直接放在 SELECT 關鍵字後面。
+ 使用提示不支援具名參數，並會擲回例外狀況。
+ REPARTITION amd REPARTITION\_BY\_RANGE 提示中的資料欄名稱必須存在於輸入結構描述中。
+ REBALANCE 提示中的資料欄名稱必須出現在 SELECT 輸出清單中。
+ 數值參數必須是介於 1 和 2147483647 之間的正整數。不支援 *1e1* 等科學表示法
+ 差異隱私權 SQL 查詢不支援提示。
+ PySpark 任務不支援 SQL 查詢的提示。若要在 PySpark 任務中提供執行計畫的指令，請使用資料框架 API。如需詳細資訊，請參閱 [Apache Spark DataFrame API 文件](https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.DataFrame.hint.html)。