|
|
|
@ -140,6 +140,7 @@ |
|
|
|
|
#include "utils/timestamp.h" |
|
|
|
|
#include "utils/typcache.h" |
|
|
|
|
|
|
|
|
|
#define DEFAULT_PAGE_CPU_MULTIPLIER 50.0 |
|
|
|
|
|
|
|
|
|
/* Hooks for plugins to get control when we ask for stats */ |
|
|
|
|
get_relation_stats_hook_type get_relation_stats_hook = NULL; |
|
|
|
@ -6865,7 +6866,7 @@ btcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, |
|
|
|
|
* touched. The number of such pages is btree tree height plus one (ie, |
|
|
|
|
* we charge for the leaf page too). As above, charge once per SA scan. |
|
|
|
|
*/ |
|
|
|
|
descentCost = (index->tree_height + 1) * 50.0 * cpu_operator_cost; |
|
|
|
|
descentCost = (index->tree_height + 1) * DEFAULT_PAGE_CPU_MULTIPLIER * cpu_operator_cost; |
|
|
|
|
costs.indexStartupCost += descentCost; |
|
|
|
|
costs.indexTotalCost += costs.num_sa_scans * descentCost; |
|
|
|
|
|
|
|
|
@ -7060,7 +7061,7 @@ gistcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, |
|
|
|
|
/*
|
|
|
|
|
* Likewise add a per-page charge, calculated the same as for btrees. |
|
|
|
|
*/ |
|
|
|
|
descentCost = (index->tree_height + 1) * 50.0 * cpu_operator_cost; |
|
|
|
|
descentCost = (index->tree_height + 1) * DEFAULT_PAGE_CPU_MULTIPLIER * cpu_operator_cost; |
|
|
|
|
costs.indexStartupCost += descentCost; |
|
|
|
|
costs.indexTotalCost += costs.num_sa_scans * descentCost; |
|
|
|
|
|
|
|
|
@ -7115,7 +7116,7 @@ spgcostestimate(PlannerInfo *root, IndexPath *path, double loop_count, |
|
|
|
|
/*
|
|
|
|
|
* Likewise add a per-page charge, calculated the same as for btrees. |
|
|
|
|
*/ |
|
|
|
|
descentCost = (index->tree_height + 1) * 50.0 * cpu_operator_cost; |
|
|
|
|
descentCost = (index->tree_height + 1) * DEFAULT_PAGE_CPU_MULTIPLIER * cpu_operator_cost; |
|
|
|
|
costs.indexStartupCost += descentCost; |
|
|
|
|
costs.indexTotalCost += costs.num_sa_scans * descentCost; |
|
|
|
|
|
|
|
|
|