Optimizer Hints in PostgreSQL

Thursday, June 25 at 14:20–15:10
  • Michael Banck has been active in the Open Source community for over 25 and in the PostgreSQL community for over 10 years.

    He is currently the PostgreSQL Technical Lead at credativ GmbH, where he join in 2009.

    He is a PostgreSQL Significant Contributor and a Debian Developer, as well as contributor to Patroni and several other PostgreSQl-related projects.

    He has consulted and supported numerous customers over the years, both in the daily operations of PostgreSQL and in the planning and implementation of high-availability and other solutions.

    Michael has presented talks at various Open Source conferences including FOSDEM, PGConf.EU, PGDay Chicago, Postgres Vision, Percona Live, DebConf and FrOSCon as well as being on the talks committee of both DebConf and PGConf.DE.

Category: Developer Level: Intermediate Language: DE Room: 3.010

Optimizer Hints sind Anweisungen an eine (relationale) Datenbank, wie eine konkrete SQL-Abfrage ausgeführt werden soll. Traditionell bietet PostgreSQL im Gegensatz zu anderen relationalen Datenbanken wie Oracle, SQL Server oder MySQL dem DBA keine Optimizer Hints. Der Standpunkt der Entwickler war, dass Optimizer-Probleme zu behebende Fehler sind, was in der Praxis allerdings nicht immer möglich ist.

Neben konkreten Optimizer Hints hat PostgreSQL allerdings schon immer die Möglichkeit besessen, durch die Änderung von Optimizer-Parametern die Entscheidungen des Planers zu beeinflussen. Darüber hinaus gibt es seit längerem die externe pg_hint_plans Erweiterung, die Optimizer Hints ermöglicht. In der kommenden Version 19 von PostgreSQL wird es erstmals Optimizer Hints direkt in PostgreSQL geben.

Dieser Vortrag gibt einen Überblick über die verschiedenen Möglichkeiten den PostgreSQL-Optimizer zu beeinflussen. Er zeigt außerdem an Hand von Beispielen wie die pg_hint_plans Erweiterung bzw. die Optimizer Hints in PostgreSQL 19 verwendet werden können.

Back

Join Us For Swiss PGDay 2026

25 & 26 June 2026

Rapperswil, Switzerland