StormaticsStormatics
October 10, 2025

Don’t Skip ANALYZE: A Real-World PostgreSQL Story

Recently, we worked on a production PostgreSQL database where a customer reported that a specific SELECT query was performing extremely slowly. The issue was critical…
September 26, 2025

Query optimizations in Odoo versions 17–19 for faster PostgreSQL performance

We get a lot of queries about performance optimization for PostgreSQL from organizations using Odoo. The platform has been built entirely on PostgreSQL, and Odoo’s…
September 22, 2025

Understanding PostgreSQL WAL and optimizing it with a dedicated disk

If you manage a PostgreSQL database with heavy write activity, one of the most important components to understand is the Write-Ahead Log (WAL). WAL is…
September 9, 2025

3 Features I am Looking Forward to in PostgreSQL 18

It is that time of the year again. The first release candidate of PostgreSQL 18 is out, and things look promising. We should expect General…
September 4, 2025

Best Practices for Achieving High Availability in PostgreSQL with Patroni and Pgpool

I recently completed a training session for one of our customer on best practices for achieving HA clusters with Patroni and Pgpool in PostgreSQL. During…
September 1, 2025

The Hidden Bottleneck in PostgreSQL Restores and its Solution

In July 2025, during the PG19-1 CommitFest, I reviewed a patch targeting the lack of parallelism when adding foreign keys in pg_restore. Around the same…
August 22, 2025

Cold, Warm, and Hot Standby in PostgreSQL: Key Differences

When working with customers, a common question we get is: “Which standby type is best for our HA needs?” Before answering, we ensure they fully…
August 20, 2025

PostgreSQL Database SLAs: Why Hidden Issues Often Break Customer Commitments

SLAs feel reassuring when signed—but their substance lies in what happens behind the scenes. Often, the most damaging breaches don’t stem from cloud outages or…
August 8, 2025

Achieving High Availability in PostgreSQL: From 90% to 99.999%

When you are running mission-critical applications, like online banking, healthcare systems, or global e-commerce platforms, every second of downtime can cost millions and damage your…
August 7, 2025

When PostgreSQL performance slows down, here is where to look first

PostgreSQL is built to perform. However, as workloads increase and systems evolve, even the most robust setups can begin to show signs of strain. Whether…
July 25, 2025

PostgreSQL 16 Installation on RHEL/CentOS – Step-by-Step Guide

Why Databases? Why PostgreSQL? In today's digital world, data is at the heart of every application, from social media platforms to banking systems, from e-commerce…
July 24, 2025

Post Webinar Blog | Designing Highly Available Postgres for Continuous Operations

Boriss Mejías conducted an in-depth session on “Designing Highly Available Postgres for Continuous Operations” on Wednesday, January 22, 2025, at 3 PM GMT. This webinar…
July 22, 2025

DBA as a Service for PostgreSQL: Expert-Led Support for Databases That Power Your Business

Let us start with some simple math. 24/7 coverage means 168 hours a week. A full-time engineer typically works a 40-hour week. That means you…
July 17, 2025

A Guide to Deploying Production-Grade Highly Available Systems in PostgreSQL

In today’s digital landscape, downtime isn’t just inconvenient, it’s costly. No matter what business you are running, an e-commerce site, a SaaS platform, or critical…
July 11, 2025

PostgreSQL Index Corruption on Windows

PostgreSQL index corruption on Windows can silently bring your systems to a halt. A leading video analytics SaaS platform, built for real-time alerting and operational…
July 10, 2025

Replication Types and Modes in PostgreSQL

Data is a key part of any mission-critical application. Losing it can lead to serious issues, such as financial loss or harm to a business’s…
July 3, 2025

Disaster Recovery Guide with pgbackrest

Recently, we worked with a client who was manually backing up their 800GB PostgreSQL database using pg_dump, which was growing rapidly and had backups stored…
July 1, 2025

From 99.9% to 99.99%: Building PostgreSQL Resilience into Your Product Architecture

Most teams building production applications understand that “uptime” matters. I am writing this blog to demonstrate how much difference an extra 0.09% makes. At 99.9%…
June 27, 2025

Choosing the Right Barman Backup Type and Mode for Your PostgreSQL Highly Available Cluster

When running a PostgreSQL database in a High Availability (HA) cluster, it’s easy to assume that having multiple nodes means your data is safe. But…
June 24, 2025

The Odoo Performance Fix You’ve Been Looking For

When your business depends on Odoo CRM and starts to slow down, operations suffer. That is precisely what happened to a fast-growing delivery company that…
June 20, 2025

Which PostgreSQL HA Solution Fits Your Needs: Pgpool or Patroni?

When designing a highly available PostgreSQL cluster, two popular tools often come into the conversation: Pgpool-II and Patroni. Both are widely used in production environments,…
June 10, 2025

Checklist: Is Your PostgreSQL Deployment Production-Grade?

One of the things I admire most about PostgreSQL is its ease of getting started. I have seen many developers and teams pick it up,…
May 30, 2025

Understanding Split-Brain Scenarios in Highly Available PostgreSQL Clusters

High Availability (HA) refers to a system design approach that ensures a service remains accessible even in the event of hardware or software failures. In…
May 27, 2025

How to Upgrade Major PostgreSQL Versions: A Practical Production Guide

PostgreSQL versions follow a well-defined five-year support lifecycle. Each major release receives bug fixes, security patches, and minor updates for five years from its initial…
May 22, 2025

Best Practices for TimescaleDB Massive Delete Operations

Welcome to the second part of our TimescaleDB best practices series! In the first part, we explored how to perform massive backfill operations efficiently, sharing…
May 16, 2025

How to Safely Perform Backfill Operations in TimescaleDB

Backfilling data into a TimescaleDB hypertable in production can be very tricky, especially when automated processes like compression policies are involved. From past experience, we…
May 13, 2025

Step by Step Guide on Setting Up Physical Streaming Replication in PostgreSQL

Physical streaming replication in PostgreSQL allows you to maintain a live copy of your database on a standby server, which continuously receives updates from the…
May 9, 2025

Improving PostgreSQL Performance with Partitioning

My recommended methodology for performance improvement of PostgreSQL starts with query optimization. The second step is architectural improvements, part of which is the partitioning of…
April 15, 2025

Finding Bottlenecks and Avoiding Over-Optimization via Explain Plans

Performance optimization in a production database is important, but trying to over-optimize can make things more complicated without real improvements. In this post, I’ll share…
April 7, 2025

SELECT FOR UPDATE – Reduce Contention and Avoid Deadlocks to Improve Performance in PostgreSQL

Relational databases are at the heart of countless applications around the world, from high-traffic e-commerce websites to enterprise resource planning (ERP) systems and financial services.…
March 11, 2025

When HASH partitioning works better than RANGE

I have always been a fan of RANGE partitioning using a date/time value in PostgreSQL. This isn't always possible, however, and I recently came across…
February 18, 2025

Important PostgreSQL Parameters: Understanding Their Importance and Recommended Values

Have you ever experienced your database slowing down as the amount of data increases? If so, one important factor to consider is tuning PostgreSQL parameters…
February 3, 2025

A Guide to Restoring a PostgreSQL Database from Disaster Using Azure Flexible Server

Backups are crucial for any mission-critical application as they protect against unforeseen disasters. Regular backups help minimize the Recovery Point Objective (RPO), allowing systems to…
January 23, 2025

Post Webinar Blog | High Availability in Postgres: Your Guide to 5 Nines and Zero Worries

Semab Tariq conducted a comprehensive session on “High Availability in Postgres: Your Guide to 5 Nines and Zero Worries” on Wednesday, January 22, 2025, at…
January 23, 2025

Leveraging autovacuum in PostgreSQL to optimize performance and reduce costs

Autovacuum is one of PostgreSQL's most powerful features, designed to maintain database health and optimize performance by automating routine maintenance tasks. However, improper configuration can…
January 15, 2025

Cut Cloud Costs with Smarter PostgreSQL CPU Core Allocation

Cloud costs can quickly spiral out of control if resources are not optimized. One of the most significant contributors to these costs is CPU core…
January 9, 2025

Idle Transactions Cause Table Bloat? Wait, What?

Yup, you read it right. Idle transactions can cause massive table bloat that the vacuum process may not be able to address. Bloat causes degradation…
December 13, 2024

VACUUM FULL in PostgreSQL – What you need to be mindful of

If you have worked with PostgreSQL for a while, you have probably come across the command VACUUM FULL. At first glance, it might seem like…
December 10, 2024

Understanding Wait Events in PostgreSQL

As databases grow in size and complexity, performance issues inevitably arise. Whether it is slow query execution, lock contention, or disk I/O bottlenecks, identifying the…
December 4, 2024

3 Essential PostgreSQL Priorities for 2025

As IT budgets tighten and workloads increase, 2025 is the year to focus on maximizing PostgreSQL efficiency, security, and reliability. Whether you are running fully-managed…
November 27, 2024

Operator Classes: Fine-Tuning Index Performance in PostgreSQL

Efficient data retrieval is crucial in any production environment, especially for databases handling heavy traffic and large datasets. PostgreSQL’s operator classes are a powerful but…
November 21, 2024

Transitioning from Oracle to PostgreSQL: Roles & Privileges

When moving from Oracle to PostgreSQL, one of the key differences lies in how each database handles roles and privileges. Oracle's privilege model is deeply…
November 19, 2024

What Happens Behind the Scenes When You Modify a Row in PostgreSQL?

Data is often called the new gold, and databases are where we store and manage this precious resource as it constantly changes and grows. At…
November 14, 2024

Transitioning from Oracle to PostgreSQL: Concurrency Control

Transitioning from Oracle to PostgreSQL can be a transformative experience for database administrators because of the subtle differences between the two technologies. Understanding how the…
November 12, 2024

Transitioning from Oracle to PostgreSQL: Indexes

For database experts well-versed in Oracle, moving to PostgreSQL opens up new indexing methods that differ significantly in terms of structure, management, and optimization. While…
November 8, 2024

Scenarios That Trigger Autovacuum in PostgreSQL

PostgreSQL is widely known for its Multi-Version Concurrency Control (MVCC) model, which allows multiple transactions to occur simultaneously without interfering with each other.  However, one…
November 6, 2024

Transitioning from Oracle to PostgreSQL: Partitioning

As databases grow, managing large tables becomes more challenging. Table partitioning is a tried-and-tested approach that helps break down large tables into smaller, more manageable…
October 31, 2024

Offline PostgreSQL Installation on RHEL 9: Solving the No Internet Challenge

PostgreSQL is one of the most loved databases, especially by developers, for its simplicity, easy configurations, and massive community support. It's an open-source powerhouse known…
October 28, 2024

Transitioning from Oracle to PostgreSQL: PL/SQL vs PL/pgSQL

Structured Query Language (SQL) is the standard language for managing and manipulating relational databases. It serves as the core mechanism for interacting with databases, enabling…
October 17, 2024

Implementing Bi-Directional Replication in PostgreSQL

In today's fast-paced digital world, ensuring that your data is always up-to-date and accessible is crucial. For businesses using PostgreSQL, replication is a key feature…
October 10, 2024

Transform PostgreSQL into a Columnar Database Using Citus

Columnar databases are transforming the way we handle large datasets by storing data in columns rather than rows. This approach enhances performance, especially for analytical…
October 4, 2024

Transitioning from Oracle to PostgreSQL: Tablespaces

Tablespaces play an important role in database management systems, as they determine where and how database objects like tables and indexes are stored. Both Oracle…
September 26, 2024

Using pg_upgrade to Upgrading Your PostgreSQL Cluster on Windows

Upgrading your PostgreSQL cluster is an important task to keep your database running smoothly and securely. With each new release, PostgreSQL introduces performance improvements, security…
September 19, 2024

Transitioning from Oracle to PostgreSQL: Understanding the Concept of Schema

As businesses increasingly move toward open-source technologies, many Oracle Database professionals find themselves needing to work with PostgreSQL, one of the most popular open-source relational…
September 12, 2024

Optimizing PostgreSQL with Composite and Partial Indexes: A Quick Comparison

Indexes are crucial for accelerating database queries, and enhancing the performance of your PostgreSQL applications. However, not all indexes function the same way. Composite and…
September 10, 2024

Understanding Factors Impacting Data Replication Latency in PostgreSQL Across Geographically Distributed Nodes

In an increasingly globalized world, companies and organizations are leveraging distributed systems to handle massive amounts of data across geographically separated locations. Whether it is…
September 3, 2024

Deploying Your First PostgreSQL Clusters on Kubernetes with Cloud Native Postgres

CloudNativePG is an open-source operator designed to manage PostgreSQL workloads on any supported Kubernetes cluster running in private, public, hybrid, or multi-cloud environments. CloudNativePG adheres…
August 29, 2024

A Beginner’s Guide to Sharding PostgreSQL with Citus

PostgreSQL is a powerful and open-source relational database system known for its reliability, flexibility, and advanced features. It handles complex queries, ensures data integrity, and…
August 27, 2024

PostgreSQL is a viable alternative to Oracle – here is why…

Why pay $100,000 for something you can achieve in $5,000? That’s the main question. Oracle is a long-standing giant in the DBMS world, offering a…
August 22, 2024

Post Webinar Blog: Boosting PostgreSQL Performance: Tools and Techniques for Optimization

Semab Tariq conducted a detailed session on "Boosting PostgreSQL Performance: Tools and Techniques for Optimization" where he talked about the essential strategies and tools you…
August 20, 2024

PostgreSQL Internals Part 4: A Beginner’s Guide to Understanding WAL in PostgreSQL

In this blog, we'll dive into the concept of Write-Ahead Logging (WAL) in PostgreSQL, discussing its importance and examining the internal structure of WAL files.
August 12, 2024

file_fdw: Directly Query Flat Files in PostgreSQL Without Importing

The file_fdw (Foreign Data Wrapper) is a PostgreSQL extension that lets you access data stored in flat files, like CSV files, as if they were…
August 8, 2024

Locks in PostgreSQL – Concurrency Benefits and Performance Challenges

PostgreSQL provides robust support for concurrency control through various locking mechanisms. Locks are critical in managing access to data and ensuring consistency and integrity in…
July 29, 2024

Ensuring Safe Data Modifications in PostgreSQL – Part 2

Concurrency control in databases ensures that multiple transactions can occur simultaneously without causing data errors. It's essential because, without it, two people updating the same...
July 26, 2024

Enhancing PostgreSQL Performance Monitoring: A Comprehensive Guide to pg_stat_statements

PostgreSQL has a rich set of features designed to handle complex queries efficiently. Much like any database system, however, its performance can degrade over time…
July 22, 2024

A Follow up on Key PostgreSQL Configuration Parameters for Enhanced Performance – Part 2

In a previous blog post, we configured an EC2 instance and installed PostgreSQL on it. After the initial setup, we ran pgbench to measure the…
July 10, 2024

Guide to Auditing and Monitoring Access in PostgreSQL

In the data-driven world of today, maintaining the security and integrity of your database is paramount. Auditing and monitoring access to your database are critical…
July 8, 2024

Access Controls in PostgreSQL

Access control is a fundamental aspect of database security, ensuring that only authorized users can perform specific actions on the data. Effective access control helps…
July 3, 2024

Key PostgreSQL Configuration Parameters for Enhanced Performance

Learn how to configure key parameters to boost Transactions Per Second (TPS) and improve overall database performance.
July 1, 2024

Ensuring Safe Data Modifications in PostgreSQL with SELECT FOR UPDATE

Learn how to use PostgreSQL's SELECT FOR UPDATE clause to ensure safe data modifications and prevent data corruption...
June 12, 2024

Exploring the Power of Partitioning in PostgreSQL

Learn about PostgreSQL partitioning, its types, and benefits for optimized database performance.
June 8, 2024

Performance impact of using ORDER BY with LIMIT in PostgreSQL

Learn how the combination of ORDER BY and LIMIT clauses in PostgreSQL affects query performance, and discover optimization techniques to maintain efficient database performance and…
June 4, 2024

Reliable Backups in PostgreSQL – Another Critical Requirement for Financial Organizations

Learn how reliable backups in PostgreSQL can help financial organizations maintain data integrity, comply with regulations, and ensure business continuity.
May 30, 2024

Setting Up a High Availability 3-Node PostgreSQL Cluster with Patroni on Ubuntu 24.04

Learn how to set up a high-availability 3-node PostgreSQL cluster with Patroni on Ubuntu 24.04, ensuring your database is always online and resilient to failures.
May 29, 2024

Protecting Personally Identifiable Information in PostgreSQL: A Critical Requirement for Financial Organizations

Protect personally identifiable information (PII) in PostgreSQL databases, a critical requirement for financial organizations.
May 28, 2024

Monitoring Replication Lag with PEM in Multi-Master Cluster

Learn how to monitor replication lag in a PostgreSQL multi-master cluster using Postgres Enterprise Manager (PEM).
May 23, 2024

Deploying PostgreSQL Multi-Master Multi-Zone Architecture on AWS

Learn how to deploy a highly available and scalable PostgreSQL multi-master multi-zone architecture on AWS, ensuring fault tolerance and geographically distributed write capabilities for your…
May 17, 2024

Understanding Synchronous and Asynchronous Replication in PostgreSQL – What is Best for You?

Learn about synchronous and asynchronous replication in PostgreSQL, including how they work and when to use each.
May 15, 2024

Removing Bloat with pg_repack Extension

PostgreSQL's pg_repack extension offers a solution to database maintenance challenges by optimizing table storage without disrupting operations. It tackles issues like bloat and fragmentation efficiently.…
May 10, 2024

Understanding Multi-Master Architecture in PostgreSQL: Benefits and Trade-offs

Dive into the world of Multi-Master Architecture in PostgreSQL. Learn about its benefits, trade-offs, and how it revolutionizes database management.
May 9, 2024

Understanding PostgreSQL Fill Factor: Benefits, Drawbacks, and Best Practices

Learn how to optimize fill factor to boost database performance, minimize fragmentation, and balance storage needs.
May 8, 2024

Understanding Patroni Failovers

Learn about Patroni, the popular high availability system for PostgreSQL, and how it works to ensure seamless failovers and efficient database management.
April 30, 2024

Logging Basics for PostgreSQL

Explore foundational parameters for maximizing the utility of PostgreSQL logs.
April 25, 2024

7 considerations for PCI DSS compliance in PostgreSQL

Learn how to ensure PCI DSS compliance in your PostgreSQL database with these 7 crucial considerations.
April 18, 2024

PostgreSQL Internals Part 3: Understanding Processes in PostgreSQL

We explore PostgreSQL Internals in detail - its processes, architecture, the different types of processes available, and their respective responsibilities.
April 8, 2024

PostgreSQL Roles and Privileges Simplified

Learn to manage roles and privileges in PostgreSQL, covering databases, schemas, and other objects level privileges.
April 8, 2024

Pitfalls of using SELECT *

Understand how SELECT * can be bad for database performance...
April 4, 2024

Fireside Chat Blog: Oracle to PostgreSQL Migration

Umair Shahid and Jan Karremans got together for an insightful session on why Oracle to PostgreSQL migration is the most suitable choice for mission-critical infrastructures.
April 1, 2024

Peak Performance – pgvector vs. PostgreSQL ARRAY for mass spectrometry databases

The native way to handle vectors in PostgreSQL are ARRAYs. They are first class citizens of PostgreSQL and come with lots of functionality out of…
March 28, 2024

Build HNSW 80% Faster with Parallel Index Build in pgvector

Discover the latest in pgvector 0.6: Parallel Index Building for HNSW. Learn how this major update speeds up index creation in Postgres.
March 22, 2024

PostgreSQL Internals Part 2: Understanding Page Structure

Explore intricacies of PostgreSQL's internal page structure and how pages are organized, their default size, and more.
March 21, 2024

Transitioning from Heroku PostgreSQL to AWS EC2: Step-by-Step Guide

The blog describes all the steps required to safely migrate your Heroku PostgreSQL database to self managed PostgreSQL on AWS EC2 instance using logshipping method.
March 16, 2024

PostgreSQL Internals Part 1: Understanding database cluster, database and tables

Learn about database clusters, databases, and tables to optimize performance and unleash the full potential of PostgreSQL for your projects
March 14, 2024

Understanding the PostgreSQL Query Planner to Improve Query Performance

Learn how the PostgreSQL query planner estimates costs and leverages configuration parameters for efficient data retrieval and increased database performance.
March 13, 2024

Post Webinar Blog: Understanding NUMA policies and their impact on PostgreSQL performance

On Wednesday, 6 March 2024, we hosted an insightful session led by our PostgreSQL Principal Consultant, Chris Travers, on Understanding NUMA policies and their impact…
March 7, 2024

Recovery Hack: Restoring Tablespace Using Barman on Windows

We uncover manual hacks to successfully recover tablespaces with Barman, navigating through encountered errors.
February 27, 2024

The default value of fdw_tuple_cost was updated to 0.2. What does that mean?

This blog post explores the recent change to the fdw_tuple_cost parameter in PostgreSQL, examining the problem it addresses and the reasoning behind the new default…
February 26, 2024

Understand Indexes in pgvector

Explore how pgvector's indexes work, choose the right one for your needs, and find the best option for your critical data.
February 22, 2024

PostgreSQL Backup and Recovery Management using Barman

Barman stands as a widely used open-source tool dedicated to managing backup and disaster recovery operations for PostgreSQL databases.
February 16, 2024

Selective Column Replication in PostgreSQL

Discover selective column replication in PostgreSQL - a powerful feature for replicating specific columns across databases.