

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# SPARQL 쿼리 힌트
<a name="sparql-query-hints"></a>

쿼리 힌트를 사용하여 Amazon Neptune에서 특정 SPARQL 쿼리에 대한 최적화 및 평가 전략을 지정할 수 있습니다.

쿼리 힌트는 SPARQL 쿼리에 다음과 같은 부분으로 포함된 추가 트리플 패턴을 사용하여 표현됩니다.

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


| Scope | 지원되는 힌트 | 설명 | 
| --- | --- | --- | 
| 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 하위 쿼리에 적용됩니다. 하위 쿼리는 하위 쿼리보다 먼저 계산된 솔루션을 고려하지 않고 독립적으로 평가됩니다. | 