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