From 311bcfc6b3acdd6fd152798c7f287ddf74fa2a98 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 16 Apr 2024 21:46:48 +0200 Subject: Adding upstream version 15.4. Signed-off-by: Daniel Baumann --- doc/src/sgml/html/geqo-intro.html | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 doc/src/sgml/html/geqo-intro.html (limited to 'doc/src/sgml/html/geqo-intro.html') diff --git a/doc/src/sgml/html/geqo-intro.html b/doc/src/sgml/html/geqo-intro.html new file mode 100644 index 0000000..65601c0 --- /dev/null +++ b/doc/src/sgml/html/geqo-intro.html @@ -0,0 +1,36 @@ + +62.1. Query Handling as a Complex Optimization Problem

62.1. Query Handling as a Complex Optimization Problem

+ Among all relational operators the most difficult one to process + and optimize is the join. The number of + possible query plans grows exponentially with the + number of joins in the query. Further optimization effort is + caused by the support of a variety of join + methods (e.g., nested loop, hash join, merge join in + PostgreSQL) to process individual joins + and a diversity of indexes (e.g., + B-tree, hash, GiST and GIN in PostgreSQL) as + access paths for relations. +

+ The normal PostgreSQL query optimizer + performs a near-exhaustive search over the + space of alternative strategies. This algorithm, first introduced + in IBM's System R database, produces a near-optimal join order, + but can take an enormous amount of time and memory space when the + number of joins in the query grows large. This makes the ordinary + PostgreSQL query optimizer + inappropriate for queries that join a large number of tables. +

+ The Institute of Automatic Control at the University of Mining and + Technology, in Freiberg, Germany, encountered some problems when + it wanted to use PostgreSQL as the + backend for a decision support knowledge based system for the + maintenance of an electrical power grid. The DBMS needed to handle + large join queries for the inference machine of the knowledge + based system. The number of joins in these queries made using the + normal query optimizer infeasible. +

+ In the following we describe the implementation of a + genetic algorithm to solve the join + ordering problem in a manner that is efficient for queries + involving large numbers of joins. +

\ No newline at end of file -- cgit v1.2.3