aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/geqo/pg_geqo.sample
blob: 1f704a44e8b2aad006a8ecbdba88982df111b2d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
#                          pg_geqo                                  *
#                          -------                                  =
#                                                                   *
#             Example Genetic Algorithm config file                 =
#                     for the PostgreSQL                            *
#            Genetic Query Optimization (GEQO) module               =
#                                                                   *
#*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=
# Martin Utesch		      * Institute of Automatic Control      *
#                             = University of Mining and Technology =
# utesch@aut.tu-freiberg.de   * Freiberg, Germany                   *
#*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=

# To make this file do something, copy it to '$PGDATA/pg_geqo'
# and edit parameters to taste.
# If '$PGDATA/pg_geqo' doesn't exist, the system will use default parameters.
# The file is re-read for every GEQO optimization, if it does exist.

# comment character is '#'
#
# separator between recognized tag and possible value
# must be white space

# QS: means query size, which is the number of relations
#     contained in a query

#=================+===================+=============================+
# RECOGNIZED TAGS |  POSSIBLE VALUES  |          DEFAULTS           |
#=================+===================+=============================+
# 'Pool_Size'     | positive int      | 2^(QS+1), but not less than |
#                 |                   | 128 nor more than 1024.     |
#-----------------+-------------------+-----------------------------+
# 'Effort'        | [low,medium,high] | medium                      |
#-----------------+-------------------+-----------------------------+
# 'Generations'   | positive int      | Effort * log2(Pool_Size)    |
#-----------------+-------------------+-----------------------------+
# 'Selection_Bias'| [1.50 .. 2.00]    | 2.0                         |
#-----------------+-------------------+-----------------------------+
# 'Random_Seed'   | positive long     | time(NULL)                  |
#=================+===================+=============================+

# 'Pool_Size' is essential for the genetic algorithm performance.
# It gives us the number of individuals within one population.
#
# 'Effort' 'low' means integer value of 1, 'medium' 40, and 'high' 80.
# Note: Effort is *only* used to derive a default value for Generations
# --- if you specify Generations then Effort does not matter.
#
# 'Generations' specifies the number of iterations in the genetic algorithm.
#
# GEQO runtime is roughly proportional to Pool_Size + Generations.
#
# 'Selection_Bias' gives us the selective pressure within the
# population.
#
# 'Random_Seed' is the random seed for the random() function.
# You don't have to set it.  If you do set it, then successive GEQO
# runs will produce repeatable results, whereas if you don't set it
# there will be some randomness in the results...

# All parameters will be computed within the GEQO module when they
# are not set in the pg_geqo file.


# Example pg_geqo settings:
#
#Pool_Size            128
#Effort               low
#Generations          200
#Random_Seed          830518260
#Selection_Bias       1.750000