

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Indicateur de requête `queryTimeout` SPARQL
<a name="sparql-query-hints-queryTimeout"></a>

L'indicateur de requête `queryTimeout` spécifie un délai d'expiration qui est inférieur à la valeur `neptune_query_timeout` définie dans le groupe de paramètres de base de données.

Si la requête se termine en raison de cet indicateur, une exception `TimeLimitExceededException` est déclenchée avec le message `Operation terminated (deadline exceeded)`. L'opportunité de réessayer une requête expirée dépend de la nature de l'échec et de votre charge de travail. Pour de plus amples informations, consultez [Gestion des exceptions et nouvelles tentatives](transactions-exceptions.md).

## Syntaxe des indicateurs `queryTimeout` SPARQL
<a name="sparql-query-hints-queryTimeout-syntax"></a>

```
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
SELECT ... WHERE {
    hint:Query hint:queryTimeout 10 .
    # OR
    hint:Query hint:queryTimeout "10" .
    # OR
    hint:Query hint:queryTimeout "10"^^xsd:integer .
 ...
}
```

La valeur de délai d'attente est exprimée en millisecondes.

La valeur de délai d'attente doit être inférieure à la valeur `neptune_query_timeout` définie dans le groupe de paramètres de base de données. Sinon, une exception `MalformedQueryException` est déclenchée avec le message `Malformed query: Query hint 'queryTimeout' must be less than neptune_query_timeout DB Parameter Group`.

L'indicateur de requête `queryTimeout` doit être spécifié dans la clause `WHERE` de la requête principale ou dans la clause `WHERE` de l'une des sous-requêtes, comme dans l'exemple ci-dessous.

Il ne doit être défini qu'une seule fois dans toutes les sections queries/subqueries et mises à jour de SPARQL (telles que INSERT et DELETE). Sinon, une exception `MalformedQueryException` est déclenchée avec le message `Malformed query: Query hint 'queryTimeout' must be set only once`.

**Portées disponibles**

L'indicateur `queryTimeout` peut être appliqué aux requêtes et mises à jour SPARQL.
+ Dans une requête SPARQL, il peut figurer dans la clause WHERE de la requête principale ou d'une sous-requête.
+ Dans une mise à jour SPARQL, il peut être défini dans la clause INSERT, DELETE ou WHERE. S'il existe plusieurs clauses de mise à jour, il ne peut être défini que dans l'une d'elles.

Pour plus d'informations sur les portées d'indicateur de requête, consultez [Portée des indicateurs de requêtes SPARQL dans Neptune](sparql-query-hints.md#sparql-query-hints-scope).

## Exemple d'indicateur `queryTimeout` SPARQL
<a name="sparql-query-hints-queryTimeout-example"></a>

Voici un exemple d'utilisation de `hint:queryTimeout` dans la clause `WHERE` principale d’une requête `UPDATE` :

```
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
INSERT {
    ?s ?p ?o
} WHERE {
    hint:Query hint:queryTimeout 100 .
    ?s ?p ?o .
}
```

Ici, le `hint:queryTimeout` est dans la clause `WHERE` d'une sous-requête :

```
PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
SELECT * {
   ?s ?p ?o .
   {
      SELECT ?s WHERE {
         hint:Query hint:queryTimeout 100 .
         ?s ?p1 ?o1 .
      }
   }
}
```