

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# La sugerencia de consulta `queryTimeout` de SPARQL
<a name="sparql-query-hints-queryTimeout"></a>

La sugerencia de consulta `queryTimeout` especifica un tiempo de espera que es menor que el conjunto de valores de`neptune_query_timeout` en el grupo de parámetros de base de datos.

Si la consulta termina como resultado de esta sugerencia, se genera una `TimeLimitExceededException`, con un mensaje `Operation terminated (deadline exceeded)`. La posibilidad de volver a intentar una consulta que ha agotado el tiempo de espera depende de la naturaleza del error y de la carga de trabajo. Para obtener instrucciones, consulte [Control de excepciones y reintentos](transactions-exceptions.md).

## Sintaxis de sugerencias SPARQL de `queryTimeout`
<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 .
 ...
}
```

El valor del tiempo de espera se expresa en milisegundos.

El valor del tiempo de espera debe ser menor que el valor de `neptune_query_timeout` establecido en el grupo de parámetros de la base de datos. De lo contrario, se generará una excepción `MalformedQueryException` con un mensaje `Malformed query: Query hint 'queryTimeout' must be less than neptune_query_timeout DB Parameter Group`.

Se debe especificar la sugerencia de consulta `queryTimeout` en la cláusula `WHERE` de la consulta principal o en la cláusula `WHERE` de uno de las subconsultas tal como se en el ejemplo a continuación:

Debe configurarse solo una vez en todas las secciones de actualizaciones queries/subqueries y en las de SPARQL (como INSERT y DELETE). De lo contrario, se generará una excepción `MalformedQueryException` con un mensaje `Malformed query: Query hint 'queryTimeout' must be set only once`.

**Ámbitos disponibles**

La sugerencia `queryTimeout` se puede aplicar tanto a las consultas SPARQL como a las actualizaciones.
+ En una consulta SPARQL, puede aparecer en la cláusula WHERE de la consulta principal o en una subconsulta.
+ En una actualización de SPARQL, se puede establecer en la cláusula INSERT, DELETE o WHERE. Si hay varias cláusulas de actualización, solo se puede establecer en una de ellas.

Para obtener más información acerca de los ámbitos de sugerencia de consulta, vea [Ámbito de las sugerencias de consulta SPARQL en Neptune](sparql-query-hints.md#sparql-query-hints-scope).

## Ejemplo de sugerencia SPARQL `queryTimeout`
<a name="sparql-query-hints-queryTimeout-example"></a>

A continuación se muestra un ejemplo de uso de `hint:queryTimeout` en la cláusula principal `WHERE` de una consulta `UPDATE`:

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

Aquí, la `hint:queryTimeout` se encuentra en la cláusula `WHERE` de una subconsulta:

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