Software Development

A Guide to PostgreSQL Performance Tuning

You will probably want to modify a lot of different configurations to get the most out of your PostgreSQL database. Let’s go through some of the main configurations that you can change to get more performance from your system. The below example shows that create an index increases the performance of the query.

Developers can customize the source code and try new applications without a big budget hit. Companies can more easily scale infrastructure — up or down — to meet economic conditions and changing business objectives. With open source software, a business is not trapped into using one provider’s software, support, or services. Instead, the business may design and redesign systems as customer expectations change and business objectives evolve. For nearly a decade, the open-source relational database PostgreSQL has been a core part of OneSignal. Over the years, we’ve scaled up to 75 terabyte of stored data across nearly 40 servers.

Integrated monitoring for virtualized PostgreSQL

The explain plan is used to show that the query’s execution plan will show the proper execution time of our query. Another key part of the PostgreSQL performance tuning process is table tuning. The SolarWinds DPA PostgreSQL performance tuning tool is built to identify tables that had inefficient queries run against them. This table tuning advisor feature displays aggregated information about the table, the inefficient queries that ran against it, and any existing indexes.

  • It’s important that you tune autovacuum to run often enough to keep dead space at an acceptable level.
  • Next, find out more ways to diagnose and fix performance issues.
  • Stay active, or at least observant, as a participant in the global open source community.
  • Fortunately for you, this implies that tweaking the default configuration could result in some rapid wins.
  • It also provides live metrics for standard database operations, such as CPU and memory activity.
  • However, EXPLAIN will only make guesses and offer you a solution that it believes will work.

Checkpoints should always be triggered by a timeout for better performance and predictability. The max_wal_size parameter should be used to protect against running out of disk space by What is PostgreSQL ensuring a checkpoint occurs when we reach this value to enable WAL to be recycled. The recommended value is half to two-thirds of the available disk space where the WAL is located.


Plans are the steps that PostgreSQL is going to take to find requested data. How you set up your database configuration, your schema, and your indexes will all affect how performant these plans are. So, it’ll be important that we understand plans and how to optimize them. Finally, the database will perform the plan and retrieve the data.

postgresql performance solutions

Having more and faster cores will assist the operating system and PostgreSQL is more efficient in utilizing them for OLTP performance. Just remember, tuning your database will take time and practice. So be patient and stay curious to find out more about your system to get the best performance results. The queries that you are running might be inefficient for many reasons, so we’ll need a way to understand what’s going on with these queries—which is where the EXPLAIN command comes in.

Why is using a PostgreSQL database tuning tool important?

If a different component is affecting your metrics and environment, it will be impossible to truly examine and enhance your database performance. The default PostgreSQL configuration is a rock-solid setup targeted at everyone’s best guess at how an “average” database on “average” hardware should be set up. This tutorial is intended to assist all levels of PostgreSQL users in better understanding PostgreSQL performance tuning. Setting up the database correctly is just the first step in PostgreSQL performance tuning.

postgresql performance solutions

Checkpoints in PostgreSQL are periodic activities that store data about your system, as we described in the configuration settings. Excessive use of log checkpoints can result in performance degradation. If you suspect this is the case, enable log checkpoints to get detailed information about the checkpoints, including how often they run and what might be triggering them. Atatus will provide statistics such as the most frequently executed queries, average query time, and so on. These aggregate metrics might help you figure out where you might have performance bottlenecks in your system. There may be a difference between the database plan PostgreSQL wants to use and the method it pulls your data.

Tuning the System

For details on how to fix that, skip ahead to the discussion about pg_repack. Sematext Cloud is a monitoring SaaS that collects PostgreSQL metrics such as connections, transactions, row CRUD and index statistics, WAL archiver, brwriter and more. Metrics can be correlated with data from logs (e.g. statement time), via the Sematext PostgreSQL Logs integration. An on-permises variant of Sematext Cloud is available as Sematext Enterprise.

Certainly, a quarterly in-depth check is advisable, and for more critical situations, monthly might might be advisable.. Implementing role-based access control for PostgreSQL can be a helpful way of managing permissions and restricting access to sensitive data. Since HA alone does not guarantee data protection, you should implement mechanisms for data durability and disaster recovery.

How do I perform a performance tuning in PostgreSQL?

To enable change data capture to capture ongoing database deltas , we need to enable logical replication. In this post, we discuss using AWS Database Migration Service to copy data from a non-partitioned table to a partitioned table and enable migration to a partitioned table with minimal downtime. In this proposed solution, we use PostgreSQL 12 on Aurora and AWS DMS. Finding the right settings for autovacuum requires some expertise. DBA’s need to make sure that autovacuum has enough worker processes available, but still uses the I/O system only in moderation in order to avoid interfering with running queries. Our PostgreSQL consultants are happy to help with configuring VACUUM and finding the optimal setup for your system.

postgresql performance solutions

You will also be able to see whether your databases are damaging the performance of other systems or if underlying services are the root cause of issues. Enterprises, the challenges and potential consequences increase exponentially. The Percona architecture, for example, features two disaster recovery sites and adds more layers to the infrastructure in order to stay highly available and keep the applications up and running.

Configuration Changes – PostgreSQL Performance Tuning

You can disable unnecessary procedures and make it so connections occur only across trusted networks. Applications are redirected to the new primary server, and business-as-usual continues using the new primary server. PostgreSQL is highly extensible, enabling users to add custom functionality through plug-ins and extensions. It also features tools such as repmgr and Patroni for automatic failover and cluster management.

Leave a Reply

Your email address will not be published. Required fields are marked *