• 概述

    概述

    使用 SdbQuery.explain() 可以查看查询的访问计划。

    当 SdbQuery.explain() 的 Detail 选项为 true 时,将会展示详细的访问计划。在协调节点和数据节点上展示的详细访问计划略有不同。

    协调节点上的详细访问计划

    协调节点上的详细访问计划包括以下内容:

    • 协调节点上的访问计划信息
    • 涉及数据节点上的访问计划信息
    1. {
    2. { 协调节点的访问计划信息 },
    3. "PlanPath": {
    4. "Operator": "COORD-MERGE",
    5. { 协调节点查询上下文的访问计划信息 },
    6. "ChildOperators": [
    7. {
    8. { 数据节点的访问计划信息 },
    9. ...
    10. },
    11. ...
    12. ]
    13. }
    14. }

    详细请参考:协调节点的访问计划

    数据节点上的详细访问计划

    数据节点上的详细访问计划包括以下内容:

    • 数据节点上的访问计划信息
    • 访问计划的缓存使用情况
    • 涉及的垂直分区中主子表的访问计划信息主表的详细访问计划:
    1. {
    2. { 主表的访问计划信息 },
    3. "PlanPath": {
    4. "Operator": "MERGE",
    5. { 主表查询上下文的访问计划信息 },
    6. "ChildOperators": [
    7. {
    8. { 子表的访问计划信息 },
    9. ...
    10. },
    11. ...
    12. ]
    13. }
    14. }

    详细请参考:主表的访问计划

    普通集合或者子表的详细访问计划:

    1. {
    2. { 集合的访问计划信息 },
    3. "PlanPath": {
    4. { 查询上下文的访问计划信息 }
    5. ...
    6. }
    7. }

    详细请参考:数据节点的访问计划

    详细的访问计划中有以下操作:

    • COORD-MERGE:对应一个协调节点上的查询上下文对象。
    • MERGE:对应一个数据节点上的主表查询上下文对象。
    • SORT:对应一个数据节点上的排序上下文对象。
    • TBSCAN:对应一个数据节点上的全表扫描上下文对象。
    • IXSCAN:对应一个数据节点上的索引扫描上下文对象。