PostgreSQL Performance Tuning
This talk is designed for advanced PostgreSQL users who want
to know how to maximize PostgreSQL performance. It covers
every aspect of performance: server settings, caching, sizing
operating system resources, optimizer processing, problem queries,
storage efficiency, and some hardware selection details. It
includes how to size shared memory, how to understand the output
of the optimizer, when to restructure queries, and how to configure
storage for optimal performance.
Duration: 3 hours, 4 hours with questions
- Northeast Ohio Oracle Users Group, April 18, 2023
- PGConf India, February 22, 2023
- Tver.io Meetup, February 10, 2020 (video)
- PGCon, May 23, 2017
- PG Day France, June 5, 2014
- PostgreSQL Conference Europe, October 29, 2013
- Southeast LinuxFest June 10, 2012
- ConFoo, February 29, 2012
- Gulev, December 8, 2006
- NordU Usenix, January 29, 2004
- International PHP Conference, November 2-5, 2003
- Fosdem, February 8-9, 2003
- O'Reilly Open Source Convention, July 22, 2002
- SRA, December 10, 2001
Explaining the Postgres Query Optimizer
The optimizer is the "brain" of the database, interpreting SQL
queries and determining the fastest method of execution. This talk uses
the explain command to show how
the optimizer interprets queries and determines optimal execution.
The talk will assist developers and administrators in
understanding how Postgres optimally executes their queries and what
steps they can take to understand and perhaps improve its behavior.
Duration: 45 minutes, 60 minutes with questions
- Pass Data Community Summit, November 6, 2024
- All Things Open, October 28, 2024
- SouthEast Linux Fest, June 9, 2024
- webinar, June 27, 2023
- Northeast Ohio Oracle Users Group, April 18, 2023
- webinar, March 27, 2023
- Citus Con, April 12, 2022 (video)
- PostgresConf.CN & PGConf.Asia, December 15, 2021 (video)
- Tver.io Meetup, February 10, 2020 (video)
- GDG Tyumen, February 7, 2020
- Postgres Expert Day with Bruce Momjian, June 18, 2019
- Percona Live Europe Open Source Database Conference, November 6, 2018
- Warsaw PostgreSQL Users Group, April 9, 2018 (video)
- PGCon, May 23, 2017
- pgDaySF, March 10, 2015
- Scale, February 20, 2015 (video)
- PG Master, October 28, 2014
- Postgres Open, September 18, 2014 (video)
- PGCon, May 23, 2014 (video)
- PGDay.IT, October 25, 2013
- National Research Nuclear University (MEPhI), October 22, 2013
- HighLoad++, October 22, 2012 (video in Russian)
- O'Reilly Open Source Convention, July 20, 2012
- Southeast LinuxFest, June 10, 2012 (video)
- PostgreSQL Conference Europe, October 19, 2011
- Boston PostgreSQL Users Group, July 12, 2011
Beyond Joins and Indexes
My presentation Explaining
the Postgres Query Optimizer covers the details of query
optimization, optimizer statistics, joins, and indexes. This talk
covers 42 other operations the optimizer can choose to handle
complex queries, large data sets, and to enhance performance.
These include merge append, gather, memoize, and hash aggregate.
It explains their purpose and shows queries that can generate these
operations.
Duration: 45 minutes,
60 minutes with questions
- Posette, June 12, 2024 (video)
- PGDay Chicago, April 26, 2024
- Fosdem, February 4, 2024 (video)
- Percona Live, May 23, 2023
- Northeast Ohio Oracle Users Group, April 18, 2023
- PGConf.Russia, April 4, 2023
- webinar, April 3, 2023 (video)
- Scale 20x, March 9, 2023 (video)
- PGConf.China, March 3, 2023
- DC PostgreSQL Users Group, January 10, 2023
Database Hardware Selection Guidelines
Database servers have hardware requirements different from other
infrastructure software, specifically unique demands on I/O and memory.
This presentation covers these differences and various I/O options and
their benefits. Topics include solid-state drives (SSD),
battery-backed RAID, controllers, and caching.
Duration: 30 minutes, 45 minutes with questions
- Northeast Ohio Oracle Users Group, April 18, 2023
- Percona Live Online, May 13, 2021 (video)
- Hopla webinar, June 3, 2020 (video)
- Tver.io Meetup, February 10, 2020 (video)
- PGCon, May 23, 2017
- PGConf Silicon Valley, November 15, 2016
- Postgres Open, September 18, 2015 (video)
- Scale, February 21, 2015 (video)
- PG Day France, June 5, 2014
- ConFoo, February 27, 2013
- Southeast LinuxFest, June 10, 2012 (video)
- New York PostgreSQL Meetup Group, May 7, 2012 (video)
- webinar, June 22, 2011 (video, registration required)
Dissecting Partitioning
Declarative partitioning is designed to improve performance and
simplify data management of large data sets. This talk first covers
the purpose and limitations of Postgres's declarative partitioning
implementation. The bulk of the talk uses SQL queries to show
the many optimizations possible with partitioning. It concludes
by showing some complicated data architectures made possible by
partitioning.
Duration: 60 minutes,
75 minutes with questions
- Silicon Valley Postgres, May 25, 2023
- Northeast Ohio Oracle Users Group, April 18, 2023
- PGDay/MED, April 13, 2023
Postgres Scaling Opportunities
Database scaling is the ability to increase database throughput
by utilizing additional resources such as I/O, memory, cpu, or additional computers. However,
the high concurrency and write requirements of database servers make
scaling a challenge. Sometimes scaling is only possible with multiple
sessions, while other options require data model adjustments or
server configuration changes. This talk explores the multi-session,
single-session, and multi-host scaling options and the workloads
where these options are appropriate.
Duration: 45 minutes, 1 hour with
questions
- PostgreSQL Conference Europe, October 22, 2014
The Future of Postgres Sharding
Database sharding involves spreading database contents across
multiple servers, with each server holding only part of the database.
While it is possible to vertically scale Postgres, and to scale
read-only workloads across multiple servers, only sharding allows
multi-server read-write scaling. This presentation will cover the
advantages of sharding and future Postgres sharding implementation
requirements, including foreign data wrapper enhancements,
parallelism, and global snapshot and transaction control. This is a
followup to my Postgres Scaling
Opportunities presentation.
Duration: 30 minutes, 45 minutes with questions
- Chinese Postgres Open Source Software Alliance, May 16, 2020 (video)
- PostgreSQL Conference Europe, October 16, 2019
- Postgres Expert Day with Bruce Momjian, June 18, 2019
- PGCon, May 31, 2019 (video)
- Deutschsprachige PostgreSQL Konferenz, April 13, 2018
- Siberian State Aerospace University, February 8, 2016
- HighLoad++, November 2, 2015 (video, video in Russian)
- PGDay.IT, October 23, 2015
- San Francisco Bay Area PostgreSQL Meetup Group, August 17, 2015