

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

# 如何使用 SPARQL `explain` 分析 Neptune 查询执行
<a name="sparql-explain-using"></a>

SPARQL `explain` 特征是 Amazon Neptune 中的一种自助式工具，可帮助您了解 Neptune 引擎所采用的执行方法。要调用 `explain`，请采用 `explain={{mode}}` 形式将参数传递到 HTTP 或 HTTPS 请求。

模式值可为 `static`、`dynamic` 或 `details` 之一。
+ 在*静态* 模式下，`explain` 仅输出查询计划的静态结构。
+ 在*动态* 模式下，`explain` 还包含查询计划的动态方面。这些方面可能包括流经运算符的中间绑定的数量、传入绑定与传出绑定的比率以及运算符使用的总时间。
+ 在*详细信息*模式下，`explain` 输出 `dynamic` 模式中显示的信息以及其他详细信息，例如实际的 SPARQL 查询字符串和某个连接运算符之下模式的估计范围计数。

Neptune 支持将 `explain` 与 [W3C SPARQL 1.1 协议](https://www.w3.org/TR/sparql11-protocol/#query-operation)规范中列出的所有三个 SPARQL 查询访问协议结合使用，即：

1. HTTP GET

1. 使用 URL 编码的参数的 HTTP POST

1. 使用文本参数的 HTTP POST

有关 SPARQL 查询引擎的信息，请参阅 [SPARQL 查询引擎在 Neptune 中的工作原理](sparql-explain-engine.md)。

有关通过调用 SPARQL `explain` 生成的输出类型的更多信息，请参阅 [在 Neptune 中调用 SPARQL `explain` 的示例](sparql-explain-examples.md)。