Postgres における遺伝的問い合わせ最適化(GEQO

GEQO モジュールは、巡回セールスマン問題( TSP )に似た問い合わせ最適化問題の解決を目的とし ています。問い合わせ計画の候補を整数の文字列としてコード化します。 各文字列は、問い合わせ内のリレーションをどういう順番で join を行なうかを表します。 例えば、

       /\
      /\ 2
     /\ 3
    4  1
という問い合わせツリーは、'4-1-3-2' という整数の文字列にコード化さ れます。この文字列は、まず、'4' と '1' リレーションの結合を行ない、 次にこの結合したものと '3' 、そしてその次に '2' と結合することを意 味します。ここで 1、2、3、4 は Postgres におけるリレーション識別子を示します。

GEQO モジュールの一部は D. Whitley 氏の Genitor アルゴリズムを適合させたものです。

Postgres における GEQO の実装固有の特徴を以下に示します。

GEQO モジュールは Postgres の問い合わせオブティマイザの実装 と比較して、Postgres DBMS に以下の利点を 与えます。