「SequoiaDB巨杉数据库」explain()(三)

本文详细解析了两个查询的访问计划,展示了如何通过Detail选项查看employee和maincs.maincl表的详细查询策略,以及如何使用Location选项定位到group1和group2的子集操作。涉及了协调器与数据节点的交互、索引选择与合并扫描等技术细节。
摘要由CSDN通过智能技术生成
  • 使用 Detail 选项查看查询的详细访问计划,并且使用 Location 选项查看查询在 group1 上的访问计划
> db.sample.employee.find( { a : { $gt : 100 } } ).explain( { Detail : true, Location : { GroupName : 'group1' } } )
{
  "NodeName": "hostname:11800",
  "GroupName": "SYSCoord",
  "Role": "coord",
  "Collection": "sample.employee",
  "Query": {
    "a": {
      "$gt": 100
    }
  },
  "Sort": {},
  "Selector": {},
  "Hint": {},
  "Skip": 0,
  "Return": -1,
  "Flag": 0,
  "ReturnNum": 0,
  "ElapsedTime": 0.011374,
  "IndexRead": 0,
  "DataRead": 0,
  "UserCPU": 0,
  "SysCPU": 0,
  "PlanPath": {
    "Operator": "COORD-MERGE",
    "Sort": {},
    "NeedReorder": false,
    "DataNodeNum": 2,
    "DataNodeList": [
      {
        "Name": "hostname:11810",
        "EstTotalCost": 1.484
      },
      {
        "Name": "hostname:11820",
        "EstTotalCost": 0.7418349999999999
      }
    ],
    "Selector": {},
    "Skip": 0,
    "Return": -1,
    "Estimate": {
      "StartCost": 0,
      "RunCost": 1.5214865,
      "TotalCost": 1.5214865,
      "Output": {
        "Records": 74973,
        "RecordSize": 29,
        "Sorted": false
      }
    },
    "ChildOperators": [
      {
        "NodeName": "hostname:11810",
        "GroupName": "group1",
        "Role": "data",
        "Collection": "sample.employee",
        "Query": {
          "a": {
            "$gt": 100
          }
        },
        "Sort": {},
        "Selector": {},
        "Hint": {},
        "Skip": 0,
        "Return": -1,
        "Flag": 2048,
        "ReturnNum": 0,
        "ElapsedTime": 0.000088,
        "IndexRead": 0,
        "DataRead": 0,
        "UserCPU": 0,
        "SysCPU": 0,
        "CacheStatus": "HitCache",
        "MainCLPlan": false,
        "CacheLevel": "OPT_PLAN_PARAMETERIZED",
        "Parameters": [
          100
        ],
        "MatchConfig": {
          "EnableMixCmp": false,
          "Parameterized": true,
          "FuzzyOptr": false
        }
      }
    ]
  }
}

Copy

  • 使用 Detail 选项查看垂直分区的详细访问计划,并使用 Expand 选项展开所有细节
> db.maincs.maincl.find( { a : { $gt : 100 } } ).explain( { Detail : true, Expand : true } )
{
  "NodeName": "hostname:11800",
  "GroupName": "SYSCoord",
  "Role": "coord",
  "Collection": "maincs.maincl",
  "Query": {
    "a": {
      "$gt": 100
    }
  },
  "Sort": {},
  "Selector": {},
  "Hint": {},
  "Skip": 0,
  "Return": -1,
  "Flag": 0,
  "ReturnNum": 0,
  "ElapsedTime": 0.002748,
  "IndexRead": 0,
  "DataRead": 0,
  "UserCPU": 0,
  "SysCPU": 0,
  "PlanPath": {
    "Operator": "COORD-MERGE",
    "Sort": {},
    "NeedReorder": false,
    "DataNodeNum": 2,
    "DataNodeList": [
      {
        "Name": "hostname:11810",
        "EstTotalCost": 0.9624999999999999
      },
      {
        "Name": "hostname:11820",
        "EstTotalCost": 0.9624999999999999
      }
    ],
    "Selector": {},
    "Skip": 0,
    "Return": -1,
    "Estimate": {
      "StartCost": 0,
      "RunCost": 0.9874999999999999,
      "TotalCost": 0.9874999999999999,
      "Output": {
        "Records": 50000,
        "RecordSize": 43,
        "Sorted": false
      }
    },
    "ChildOperators": [
      {
        "NodeName": "hostname:11810",
        "GroupName": "group1",
        "Role": "data",
        "Collection": "maincs.maincl",
        "Query": {
          "a": {
            "$gt": 100
          }
        },
        "Sort": {},
        "Selector": {},
        "Hint": {},
        "Skip": 0,
        "Return": -1,
        "Flag": 2048,
        "ReturnNum": 0,
        "ElapsedTime": 0.00062,
        "IndexRead": 0,
        "DataRead": 0,
        "UserCPU": 0,
        "SysCPU": 0,
        "PlanPath": {
          "Operator": "MERGE",
          "Sort": {},
          "NeedReorder": false,
          "SubCollectionNum": 2,
          "SubCollectionList": [
            {
              "Name": "subcs.subcl2",
              "EstTotalCost": 0.475
            },
            {
              "Name": "subcs.subcl1",
              "EstTotalCost": 0.475
            }
          ],
          "Selector": {},
          "Skip": 0,
          "Return": -1,
          "Estimate": {
            "StartCost": 0,
            "RunCost": 0.9624999999999999,
            "TotalCost": 0.9624999999999999,
            "Output": {
              "Records": 25000,
              "RecordSize": 43,
              "Sorted": false
            }
          },
          "SubCollections": [
            {
              "Collection": "subcs.subcl2",
              "Query": {
                "a": {
                  "$gt": 100
                }
              },
              "Sort": {},
              "Selector": {},
              "Hint": {},
              "Skip": 0,
              "Return": -1,
              "Flag": 2048,
              "ReturnNum": 0,
              "ElapsedTime": 0.000042,
              "IndexRead": 0,
              "DataRead": 0,
              "UserCPU": 0,
              "SysCPU": 0,
              "CacheStatus": "HitCache",
              "MainCLPlan": true,
              "CacheLevel": "OPT_PLAN_PARAMETERIZED",
              "Parameters": [
                100
              ],
              "MatchConfig": {
                "EnableMixCmp": false,
                "Parameterized": true,
                "FuzzyOptr": false
              },
              "PlanPath": {
                "Operator": "TBSCAN",
                "Collection": "subcs.subcl2",
                "Query": {
                  "$and": [
                    {
                      "a": {
                        "$gt": 100
                      }
                    }
                  ]
                },
                "Selector": {},
                "Skip": 0,
                "Return": -1,
                "Estimate": {
                  "StartCost": 0,
                  "RunCost": 0.475,
                  "TotalCost": 0.475,
                  "CLEstFromStat": false,
                  "Input": {
                    "Pages": 25,
                    "Records": 25000,
                    "RecordSize": 43
                  },
                  "Filter": {
                    "MthSelectivity": 0.4999994999999995
                  },
                  "Output": {
                    "Records": 12500,
                    "RecordSize": 43,
                    "Sorted": false
                  }
                }
              }
            },
            {
              "Collection": "subcs.subcl1",
              "Query": {
                "a": {
                  "$gt": 100
                }
              },
              "Sort": {},
              "Selector": {},
              "Hint": {},
              "Skip": 0,
              "Return": -1,
              "Flag": 2048,
              "ReturnNum": 0,
              "ElapsedTime": 0.000049,
              "IndexRead": 0,
              "DataRead": 0,
              "UserCPU": 0,
              "SysCPU": 0,
              "CacheStatus": "HitCache",
              "MainCLPlan": true,
              "CacheLevel": "OPT_PLAN_PARAMETERIZED",
              "Parameters": [
                100
              ],
              "MatchConfig": {
                "EnableMixCmp": false,
                "Parameterized": true,
                "FuzzyOptr": false
              },
              "PlanPath": {
                "Operator": "TBSCAN",
                "Collection": "subcs.subcl1",
                "Query": {
                  "$and": [
                    {
                      "a": {
                        "$gt": 100
                      }
                    }
                  ]
                },
                "Selector": {},
                "Skip": 0,
                "Return": -1,
                "Estimate": {
                  "StartCost": 0,
                  "RunCost": 0.475,
                  "TotalCost": 0.475,
                  "CLEstFromStat": false,
                  "Input": {
                    "Pages": 25,
                    "Records": 25000,
                    "RecordSize": 43
                  },
                  "Filter": {
                    "MthSelectivity": 0.4999994999999995
                  },
                  "Output": {
                    "Records": 12500,
                    "RecordSize": 43,
                    "Sorted": false
                  }
                }
              }
            }
          ]
        }
      },
      {
        "NodeName": "hostname:11820",
        "GroupName": "group2",
        "Role": "data",
        "Collection": "maincs.maincl",
        "Query": {
          "a": {
            "$gt": 100
          }
        },
        "Sort": {},
        "Selector": {},
        "Hint": {},
        "Skip": 0,
        "Return": -1,
        "Flag": 2048,
        "ReturnNum": 0,
        "ElapsedTime": 0.00067,
        "IndexRead": 0,
        "DataRead": 0,
        "UserCPU": 0,
        "SysCPU": 0,
        "PlanPath": {
          "Operator": "MERGE",
          "Sort": {},
          "NeedReorder": false,
          "SubCollectionNum": 2,
          "SubCollectionList": [
            {
              "Name": "subcs.subcl2",
              "EstTotalCost": 0.475
            },
            {
              "Name": "subcs.subcl1",
              "EstTotalCost": 0.475
            }
          ],
          "Selector": {},
          "Skip": 0,
          "Return": -1,
          "Estimate": {
            "StartCost": 0,
            "RunCost": 0.9624999999999999,
            "TotalCost": 0.9624999999999999,
            "Output": {
              "Records": 25000,
              "RecordSize": 43,
              "Sorted": false
            }
          },
          "SubCollections": [
            {
              "Collection": "subcs.subcl2",
              "Query": {
                "a": {
                  "$gt": 100
                }
              },
              "Sort": {},
              "Selector": {},
              "Hint": {},
              "Skip": 0,
              "Return": -1,
              "Flag": 2048,
              "ReturnNum": 0,
              "ElapsedTime": 0.000034,
              "IndexRead": 0,
              "DataRead": 0,
              "UserCPU": 0,
              "SysCPU": 0,
              "CacheStatus": "HitCache",
              "MainCLPlan": true,
              "CacheLevel": "OPT_PLAN_PARAMETERIZED",
              "Parameters": [
                100
              ],
              "MatchConfig": {
                "EnableMixCmp": false,
                "Parameterized": true,
                "FuzzyOptr": false
              },
              "PlanPath": {
                "Operator": "TBSCAN",
                "Collection": "subcs.subcl2",
                "Query": {
                  "$and": [
                    {
                      "a": {
                        "$gt": 100
                      }
                    }
                  ]
                },
                "Selector": {},
                "Skip": 0,
                "Return": -1,
                "Estimate": {
                  "StartCost": 0,
                  "RunCost": 0.475,
                  "TotalCost": 0.475,
                  "CLEstFromStat": false,
                  "Input": {
                    "Pages": 25,
                    "Records": 25000,
                    "RecordSize": 43
                  },
                  "Filter": {
                    "MthSelectivity": 0.4999994999999995
                  },
                  "Output": {
                    "Records": 12500,
                    "RecordSize": 43,
                    "Sorted": false
                  }
                }
              }
            },
            {
              "Collection": "subcs.subcl1",
              "Query": {
                "a": {
                  "$gt": 100
                }
              },
              "Sort": {},
              "Selector": {},
              "Hint": {},
              "Skip": 0,
              "Return": -1,
              "Flag": 2048,
              "ReturnNum": 0,
              "ElapsedTime": 0.000048,
              "IndexRead": 0,
              "DataRead": 0,
              "UserCPU": 0,
              "SysCPU": 0,
              "CacheStatus": "HitCache",
              "MainCLPlan": true,
              "CacheLevel": "OPT_PLAN_PARAMETERIZED",
              "Parameters": [
                100
              ],
              "MatchConfig": {
                "EnableMixCmp": false,
                "Parameterized": true,
                "FuzzyOptr": false
              },
              "PlanPath": {
                "Operator": "TBSCAN",
                "Collection": "subcs.subcl1",
                "Query": {
                  "$and": [
                    {
                      "a": {
                        "$gt": 100
                      }
                    }
                  ]
                },
                "Selector": {},
                "Skip": 0,
                "Return": -1,
                "Estimate": {
                  "StartCost": 0,
                  "RunCost": 0.475,
                  "TotalCost": 0.475,
                  "CLEstFromStat": false,
                  "Input": {
                    "Pages": 25,
                    "Records": 25000,
                    "RecordSize": 43
                  },
                  "Filter": {
                    "MthSelectivity": 0.4999994999999995
                  },
                  "Output": {
                    "Records": 12500,
                    "RecordSize": 43,
                    "Sorted": false
                  }
                }
              }
            }
          ]
        }
      }
    ]
  }
}

相关文章请点击阅读

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值