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

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

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

查询超时

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

射击安全

在整个查询中禁用类型提升。
hint:Query

queryId

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

UsedFE

在整个查询中启用(或禁用)DFE。
hint:Group

joinOrder

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

evaluationStrategy

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