SPARQL 查詢提示 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 子查詢。子查詢是獨立評估的,不會考慮在子查詢之前計算的解決方案。