zoukankan      html  css  js  c++  java
  • PostgreSQL在何处处理 sql查询之六十六

    继续分析

    /*
     * final_cost_hashjoin
     *      Final estimate of the cost and result size of a hashjoin path.
     *
     * Note: the numbatches estimate is also saved into 'path' for use later
     *
     * 'path' is already filled in except for the rows and cost fields and
     *        num_batches
     * 'workspace' is the result from initial_cost_hashjoin
     * 'sjinfo' is extra info about the join for selectivity estimation
     * 'semifactors' contains valid data if path->jointype is SEMI or ANTI
     */
    void
    final_cost_hashjoin(PlannerInfo *root, HashPath *path,
                        JoinCostWorkspace *workspace,
                        SpecialJoinInfo *sjinfo,
                        SemiAntiJoinFactors *semifactors)
    {
        Path       *outer_path = path->jpath.outerjoinpath;
        Path       *inner_path = path->jpath.innerjoinpath;
        double        outer_path_rows = outer_path->rows;
        double        inner_path_rows = inner_path->rows;
        List       *hashclauses = path->path_hashclauses;
        Cost        startup_cost = workspace->startup_cost;
        Cost        run_cost = workspace->run_cost;
        int            numbuckets = workspace->numbuckets;
        int            numbatches = workspace->numbatches;
        Cost        cpu_per_tuple;
        QualCost    hash_qual_cost;
        QualCost    qp_qual_cost;
        double        hashjointuples;
        double        virtualbuckets;
        Selectivity innerbucketsize;
        ListCell   *hcl;

    ...
    qp_qual_cost.startup -= hash_qual_cost.startup;
    qp_qual_cost.per_tuple -= hash_qual_cost.per_tuple;
    ...
    }
  • 相关阅读:
    maven核心概念--生命周期
    maven核心概念--插件和目标
    TDD入门demo
    第一个简单的maven项目
    java -cp用法
    TDD最佳实践
    自定义测试规则
    自定义测试执行器
    junit3对比junit4
    Junit4X系列--hamcrest的使用
  • 原文地址:https://www.cnblogs.com/gaojian/p/3134431.html
Copyright © 2011-2022 走看看