本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 |
查询提示应用于整个查询。 | |
hint:Query |
超时值适用于整个查询。 | |
hint:Query |
对于整个查询,类型提升被禁用。 | |
hint:Query |
查询 ID 值适用于整个查询。 | |
hint:Query |
对于整个查询,DFE 的使用被禁用。 | |
hint:Group |
查询提示应用于指定组中的顶级元素,但不应用于嵌套元素(如子查询)或父元素。 | |
hint:SubQuery |
指定提示并将它应用于嵌套 SELECT 子查询。单独计算子查询,而不考虑在子查询之前计算的解。 |