queryTimeoutSPARQL查询提示 - Amazon Neptune

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

queryTimeoutSPARQL查询提示

queryTimeout 查询提示指定超时,该值短于在数据库参数组中设置的 neptune_query_timeout 值。

如果查询因为此提示而终止,则会引发 TimeLimitExceededException,并显示 Operation terminated (deadline exceeded) 消息。

queryTimeoutSPARQL提示语法

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

该超时值以毫秒表示。

该超时值必须小于数据库参数组中设置的 neptune_query_timeout 值。否则,将会引发带 Malformed query: Query hint 'queryTimeout' must be less than neptune_query_timeout DB Parameter Group 消息的 MalformedQueryException 异常。

queryTimeout 查询提示应在主查询的 WHERE 子句中指定,或者在某个子查询的 WHERE 子句中指定,如下例所示。

在所有查询/子查询和SPARQL更新部分(例如和)中只能设置一次。INSERT DELETE否则,将会引发带 Malformed query: Query hint 'queryTimeout' must be set only once 消息的 MalformedQueryException 异常。

可用范围

queryTimeout提示既可以应用于SPARQL查询,也可以应用于更新。

  • 在SPARQL查询中,它可以出现在主查询或子查询的子WHERE句中。

  • 在SPARQL更新中,可以在INSERTDELETE、或WHERE子句中进行设置。如果有多个 update 子句,则只能在其中一个中进行设置。

有关查询提示范围的更多信息,请参阅 Neptune 中SPARQL查询提示的范围

queryTimeoutSPARQL提示示例

此处是在 UPDATE 主查询的 WHERE 子句中使用 hint:queryTimeout 的示例。

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

此处,hint:queryTimeout 位于子查询的 WHERE 子句中:

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