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

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

SPARQL 查询提示

您可使用查询提示为 Amazon Neptune 中的特定 SPARQL 查询指定优化和计算策略。

查询提示是使用 SPARQL 查询中嵌入的附加三元组模式表示的,包含以下部分:

scope hint value
  • 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

useDFE

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

joinOrder

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

evaluationStrategy

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