SPARQL 查询提示 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

SPARQL 查询提示

您可使用查询提示为 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 中的用法的更多信息。

Neptune 中 SPARQL 查询提示的范围

下表显示 Amazon Neptune 中 SPARQL 查询提示的可用范围、关联提示和描述。这些区域有:hint以下条目中的前缀表示提示的 Neptune 命名空间:

PREFIX hint: <http://aws.amazon.com/neptune/vocab/v01/QueryHints#>
范围 支持的提示 说明
hint:Query

joinOrder

查询提示应用于整个查询。
hint:Query

QueryTimeout

超时值适用于整个查询。
hint:Query

rangeSafe

对于整个查询,类型提升被禁用。
hint:Query

queryId

查询 ID 值适用于整个查询。
hint:Query

使用的 Fe

对于整个查询,DFE 的使用被禁用。
hint:Group

joinOrder

查询提示应用于指定组中的顶级元素,但不应用于嵌套元素(如子查询)或父元素。
hint:SubQuery

evaluationStrategy

指定提示并将它应用于嵌套 SELECT 子查询。单独计算子查询,而不考虑在子查询之前计算的解。