Genetic Query Optimizer
This section describes parameters related to genetic query optimizer. The genetic query optimizer (GEQO) is an algorithm that plans queries by using heuristic searching. This algorithm reduces planning time for complex queries and the costs of producing plans are sometimes inferior to those found by the normal exhaustive-search algorithm.
geqo
Parameter description: Specifies whether to enable the genetic query optimization.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
It is best not to turn it off in execution. geqo_threshold provides more subtle control of GEQO.
Value range: Boolean
- on: enabled.
- off: disabled.
Default value: on
geqo_threshold
Parameter description: Specifies the number of FROM items. Genetic query optimization is used to plan queries when the number of statements executed is greater than this value.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
- For simpler queries, it is best to use the regular, exhaustive-search planner; but for queries with many tables, it is better to use GEQO to manage the queries.
- A FULL OUTER JOIN construct counts as only one FROM item.
Value range: an integer ranging from 2 to INT_MAX.
Default value: 12
geqo_effort
Parameter description: Controls the trade-off between planning time and query plan quality in GEQO.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
- geqo_effort does not perform operations directly. This parameter is only used to compute the default values for the other variables that influence GEQO behavior. If you prefer, you can manually set the other parameters instead.
- Larger values increase the time spent in query planning, but also increase the probability that an efficient query plan is chosen.
Value range: an integer ranging from 1 to 10.
Default value: 5
geqo_pool_size
Parameter description: Controls the pool size used by GEQO, that is, the number of individuals in the genetic population.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
Value range: an integer ranging from 0 to INT_MAX.
The value of this parameter must be at least 2, and useful values are typically from 100 to 1000. If this parameter is set to 0, GaussDB selects a proper value based on geqo_effort and the number of tables.
Default value: 0
geqo_generations
Parameter description: Specifies the number of iterations of the GEQO.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
Value range: an integer ranging from 0 to INT_MAX.
The value of this parameter must be at least 1, and useful values are typically from 100 to 1000. If it is set to 0, a suitable value is chosen based on geqo_pool_size.
Default value: 0
geqo_selection_bias
Parameter description: Specifies the selection bias used by GEQO. The selection bias is the selective pressure within the population.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
Value range: a floating-point number ranging from 1.5 to 2.0.
Default value: 2
geqo_seed
Parameter description: Specifies the initial value of the random number generator used by GEQO to select random paths through the join order search space.
This is a USERSET parameter. Set it based on instructions provided in Table 1.
Value range: a floating-point number ranging from 0.0 to 1.0.
Varying the value changes the set of join paths explored, and may result in a better or worse best path being found.
Default value: 0
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot