{"repo":"TantorLabs/pg_dphyp","free":true,"listed":false,"github":"https://github.com/TantorLabs/pg_dphyp","clone":"git clone https://github.com/TantorLabs/pg_dphyp.git","description":"DPHyp join ordering algorithm for PostgreSQL","language":"PLpgSQL","stars":25,"topics":["dphyp","join-ordering","postgresql","postgresql-extension"],"license":"MIT","category":"databases-storage","readme_excerpt":"DPHyp join enumeration algorithm for PostgreSQL Implementation of DP join enumeration algorithm based on hypergraphs for PostgreSQL. Original paper \"Dynamic Programming Strikes Back\". What is it This is an extension for PostgreSQL that implements dynamic programming algorithm based on hypergraphs to find join ordering (DPhyp). In PostgreSQL there are 2 builtin algorithms: - Conventional dynamic programming (called DPsize) - GEQO, randomized DPsize can find suitable join ordering, but it's performance dramatically degrades starting from 12 tables. To prevent infinite awaiting GEQO is used - it is randomized algorithm that is enabled by geqo GUC and starts working when tables count hits geqo threshold . DPhyp algorithm can solve such problem - for some queries it can find close to optimal plan in reasonable amount of time . Idea of algorithm is simple: instead of trying to join relations with each other (DPsize) we find links between tables and guide search process using them (DPhyp). This helps us reduce search space and do not consider obviously impossible JOINs. NOTE: found join ordering can be not optimal - DPsize's plan can be more optimal. Getting started Building is the same as for other extensions: clone to contrib or use PGXS and run make install . Installation to database requires only adding extension to shared preload libraries : GUC There are 5 GUC settings: 1. pg dphyp.enabled (boolean) - controls whether algorithm is enabled. It is on by default 2. pg dphyp.cj st","default_branch":null,"files":null,"tree":[],"storefront":"/r/TantorLabs","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/TantorLabs/pg_dphyp/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}