org.apache.calcite.rel.RelNode.computeSelfCost()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.4k)|赞(0)|评价(0)|浏览(107)

本文整理了Java中org.apache.calcite.rel.RelNode.computeSelfCost方法的一些代码示例,展示了RelNode.computeSelfCost的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RelNode.computeSelfCost方法的具体详情如下:
包路径:org.apache.calcite.rel.RelNode
类名称:RelNode
方法名:computeSelfCost

RelNode.computeSelfCost介绍

暂无

代码示例

代码示例来源:origin: apache/incubator-druid

@Override
public RelOptCost computeSelfCost(final RelOptPlanner planner, final RelMetadataQuery mq)
{
 return right.computeSelfCost(planner, mq).plus(left.computeSelfCost(planner, mq).multiplyBy(50));
}

代码示例来源:origin: org.apache.calcite/calcite-core

public RelOptCost getNonCumulativeCost(RelNode rel, RelMetadataQuery mq) {
 return rel.computeSelfCost(rel.getCluster().getPlanner(), mq);
}

代码示例来源:origin: Qihoo360/Quicksql

public RelOptCost getNonCumulativeCost(RelNode rel, RelMetadataQuery mq) {
 return rel.computeSelfCost(rel.getCluster().getPlanner(), mq);
}

代码示例来源:origin: org.apache.druid/druid-sql

@Override
public RelOptCost computeSelfCost(final RelOptPlanner planner, final RelMetadataQuery mq)
{
 return right.computeSelfCost(planner, mq).plus(left.computeSelfCost(planner, mq).multiplyBy(50));
}

代码示例来源:origin: org.apache.calcite/calcite-druid

@Override public RelOptCost computeSelfCost(RelOptPlanner planner,
  RelMetadataQuery mq) {
 return Util.last(rels)
   .computeSelfCost(planner, mq)
   // Cost increases with the number of fields queried.
   // A plan returning 100 or more columns will have 2x the cost of a
   // plan returning 2 columns.
   // A plan where all extra columns are pruned will be preferred.
   .multiplyBy(
     RelMdUtil.linear(querySpec.fieldNames.size(), 2, 100, 1d, 2d))
   .multiplyBy(getQueryTypeCostMultiplier())
   // A Scan leaf filter is better than having filter spec if possible.
   .multiplyBy(rels.size() > 1 && rels.get(1) instanceof Filter ? 0.5 : 1.0)
   // a plan with sort pushed to druid is better than doing sort outside of druid
   .multiplyBy(Util.last(rels) instanceof Sort ? 0.1 : 1.0)
   .multiplyBy(getIntervalCostMultiplier());
}

代码示例来源:origin: Qihoo360/Quicksql

@Override public RelOptCost computeSelfCost(RelOptPlanner planner,
  RelMetadataQuery mq) {
  return Util.last(rels)
    .computeSelfCost(planner, mq)
    // Cost increases with the number of fields queried.
    // A plan returning 100 or more columns will have 2x the cost of a
    // plan returning 2 columns.
    // A plan where all extra columns are pruned will be preferred.
    .multiplyBy(
      RelMdUtil.linear(querySpec.fieldNames.size(), 2, 100, 1d, 2d))
    .multiplyBy(getQueryTypeCostMultiplier())
    // a plan with sort pushed to druid is better than doing sort outside of druid
    .multiplyBy(Util.last(rels) instanceof Sort ? 0.1 : 1.0)
    .multiplyBy(getIntervalCostMultiplier());
}

相关文章