概述
使用 SdbQuery.explain() 可以查看查询的访问计划。
当 SdbQuery.explain() 的 Detail 选项为 true 时,将会展示详细的访问计划。在协调节点和数据节点上展示的详细访问计划略有不同。
协调节点上的详细访问计划
协调节点上的详细访问计划包括以下内容:
- 协调节点上的访问计划信息
- 涉及数据节点上的访问计划信息
- {
- { 协调节点的访问计划信息 },
- "PlanPath": {
- "Operator": "COORD-MERGE",
- { 协调节点查询上下文的访问计划信息 },
- "ChildOperators": [
- {
- { 数据节点的访问计划信息 },
- ...
- },
- ...
- ]
- }
- }
详细请参考:协调节点的访问计划
数据节点上的详细访问计划
数据节点上的详细访问计划包括以下内容:
- 数据节点上的访问计划信息
- 访问计划的缓存使用情况
- 涉及的垂直分区中主子表的访问计划信息主表的详细访问计划:
- {
- { 主表的访问计划信息 },
- "PlanPath": {
- "Operator": "MERGE",
- { 主表查询上下文的访问计划信息 },
- "ChildOperators": [
- {
- { 子表的访问计划信息 },
- ...
- },
- ...
- ]
- }
- }
详细请参考:主表的访问计划
普通集合或者子表的详细访问计划:
- {
- { 集合的访问计划信息 },
- "PlanPath": {
- { 查询上下文的访问计划信息 }
- ...
- }
- }
详细请参考:数据节点的访问计划
详细的访问计划中有以下操作:
- COORD-MERGE:对应一个协调节点上的查询上下文对象。
- MERGE:对应一个数据节点上的主表查询上下文对象。
- SORT:对应一个数据节点上的排序上下文对象。
- TBSCAN:对应一个数据节点上的全表扫描上下文对象。
- IXSCAN:对应一个数据节点上的索引扫描上下文对象。