

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# SPARQL クエリヒント
<a name="sparql-query-hints"></a>

クエリヒントを使用して Amazon Neptune の特定の SPARQL クエリの最適化と評価戦略を指定することができます。

クエリヒントは、以下の部分で SPARQL クエリに組み込まれている追加の 3 つのパターンで表されます。

```
{{scope}} {{hint}} {{value}}
```
+ *scope* - クエリ内の特定のグループまたは完全なクエリなど、クエリヒントが適用されるクエリの部分を決定します。
+ *hint* – 適用するヒントのタイプを特定します。
+ *value* – 検討中のシステムアスペクトの動作を決めます。

クエリのヒントとスコープは、Amazon Neptune 名前空間 `http://aws.amazon.com/neptune/vocab/v01/QueryHints#` の事前定義された条件として表示されます。このセクションの例には、クエリで定義され、クエリに含まれている `hint` プレフィックスとして名前空間が含まれています。

```
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
```

たとえば、以下は `SELECT` クエリに `joinOrder` ヒントを含める方法を示します。

```
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
SELECT {{...}} {
 hint:Query hint:joinOrder "Ordered" .
 {{...}}
}
```

前述のクエリは、Neptune エンジンに、クエリ内の結合を評価するように指示します。*指定された*順序付けを行い、自動並べ替えを無効にします。

クエリヒントを使用するときは、以下について検討します。
+ 単一のクエリでさまざまなクエリヒントを組み合わせることができます。たとえば、ボトムアップ評価のためにサブクエリに注釈を追加するには `bottomUp` クエリヒントを使用できます。また、サブクエリ内の結合の順序を修正するには `joinOrder` クエリヒントを使用できます。
+ 別の重複していないスコープで同じクエリを複数回使用できます。
+ クエリヒントはヒントです。クエリエンジンは通常、特定のクエリヒントを考慮することを目的としていますが、それらを無視することもあります。
+ クエリヒントはセマンティクスを維持します。クエリヒントを追加しても、クエリの出力は変更されません (順序保証が指定されていない場合、つまり、ORDER BY を使用して結果の順序が明示的に適用されない場合を除く)。

以下のセクションでは、Neptune で使用可能なクエリヒントとその使用方法に関する詳しい情報が記載されています。

**Topics**
+ [Neptune における SPARQL クエリヒントの範囲。](#sparql-query-hints-scope)
+ [`joinOrder` SPARQL クエリヒント](sparql-query-hints-joinOrder.md)
+ [`evaluationStrategy`SPARQL クエリヒント](sparql-query-hints-evaluationStrategy.md)
+ [`queryTimeout` SPARQL クエリヒント](sparql-query-hints-queryTimeout.md)
+ [`rangeSafe` SPARQL クエリヒント](sparql-query-hints-rangeSafe.md)
+ [`queryId`SPARQL クエリヒント](sparql-query-hints-queryId.md)
+ [`useDFE` SPARQL クエリヒント](sparql-query-hints-useDFE.md)
+ [DESCRIBE で使用される SPARQL クエリヒント](sparql-query-hints-for-describe.md)

## Neptune における SPARQL クエリヒントの範囲。
<a name="sparql-query-hints-scope"></a>

次の表は、Amazon Neptune で使用可能なスコープ、関連付けられたヒント、SPARQL クエリヒントの説明を示します。これらのエントリの `hint` プレフィックスは、ヒントの Neptune 名前空間を表します。

```
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
```


| スコープ | サポートされるヒント | 説明 | 
| --- | --- | --- | 
| hint:Query | [joinOrder](sparql-query-hints-joinOrder.md) | クエリヒントはクエリ全体に適用されます。 | 
| hint:Query | [queryTimeout](sparql-query-hints-queryTimeout.md) | タイムアウト値はクエリ全体に適用されます。 | 
| hint:Query | [RangeSafe](sparql-query-hints-rangeSafe.md) | タイプ昇格は、クエリ全体に対して無効になっています。 | 
| hint:Query | [queryId](sparql-query-hints-queryId.md) | クエリ ID 値はクエリ全体に適用されます。 | 
| hint:Query | [useDFE](sparql-query-hints-useDFE.md) | DFE の使用は、クエリ全体に対して無効になっています。 | 
| hint:Group | [joinOrder](sparql-query-hints-joinOrder.md) | クエリヒントは指定されたグループの最上位の要素に適用されますが、ネストされた要素 (サブクエリなど) や親要素には適用されません。 | 
| hint:SubQuery | [evaluationStrategy](sparql-query-hints-evaluationStrategy.md) | ヒントは指定されて、ネストされた SELECT サブクエリに適用されます。サブクエリの前に計算されたソリューションを考慮せずに、サブクエリは個別に評価されます。 | 