• EN
    • SV
Blog

Cybertec Logo

  • Services
    • Requirement Analysis
    • PostgreSQL consulting
    • PostgreSQL migration
      • Migration from Oracle
      • Migrating from MySQL / MariaDB
      • CYBERTEC Migrator
    • CYPEX Online Academy
    • PostgreSQL Infrastructure
      • Setup & Installation
      • Kubernetes
      • Database architecture
    • PostgreSQL development
      • Database modeling
      • Functions & Features
    • Update & Upgrade
    • Optimization & Security
      • PostgreSQL Health Check
      • Performance Tuning
      • Enterprise Security
      • Security Audit
    • Troubleshooting & Data Recovery
    • PostgreSQL clustering and HA
      • Clustering and failover
      • High availability with Patroni
      • Synchronous and asynchronous replication
      • Scaling with PL/Proxy
    • Spatial Services
      • GIS Tooling
      • PostGIS OSM Downloader
    • CYBERTEC Partner Network
  • Support
    • Standard PostgreSQL Support
      • Product Support
      • 9/5 Basic Support
      • 24/7 Basic Support
      • 24/7 Enterprise Support
    • Advanced PostgreSQL Support
      • 9/5 Remote DBA
      • 24/7 Remote DBA
      • 9/5 Dedicated DBA
      • 24/7 Cloud-based Support
    • Support for Reseller
      • 3rd Level Support
      • CYBERTEC Partner Network
  • Products
    • Our Products
      • CYPEX – Build Apps & Forms
      • CYBERTEC PostgreSQL Enterprise Edition
      • CYBERTEC Migrator
      • PostgreSQL Transparent Data Encryption
      • Scalefield – Private Cloud
      • Data Masking for PostgreSQL
      • PL/pgSQL_sec – Fully encrypted stored procedures
    • PostgreSQL Tools & Extensions
      • pg_timetable – Advanced Job Scheduling
      • pg_show_plans – Monitoring Execution Plans
      • pgwatch – PostgreSQL Monitoring Tool
      • pg_squeeze – Shrinks Tables
      • Walbouncer – Enterprise Grade Partial Replication
      • PGConfigurator – Visual PostgreSQL Configuration
      • Patroni Environment Setup
    • Assessment Packages
      • Data Science Assessment Package
      • Start-Up Assessment Package
      • Spatial Data Assessment Package
    • CYBERTEC Partner Network
  • Training
  • PostgreSQL
    • Advantages of PostgreSQL
    • PostgreSQL Books
    • Solutions – Who uses PostgreSQL
      • PostgreSQL for Startups
      • PostgreSQL for governments and public services
      • Longlife solutions
    • Business Cases
      • Fraud Detection
      • PostgreSQL for biotech and scientific applications
  • Data Science
    • Data Science Overview
    • Machine Learning
    • Big Data Analytics
  • Contact
    • Jobs
    • Contact

Posts

03.01.2023 | Hans-Jürgen Schönig

Improving GROUP BY with CREATE STATISTICS

Analyzing time series often comes with challenges. This is especially true if you want to do a bit more than just run simple counts on values in a column. More often than not you’ll want to create a month’s report, a weekly overview and so on. This requires you to group on expressions rather than […]

Read more
27.12.2022 | Hans-Jürgen Schönig

JSON logs in PostgreSQL 15

As of version 15, PostgreSQL offers you the ability to write the server log in JSON format. This feature has been desired for a long time and has finally made it to PostgreSQL core. In this post we will discuss how JSON logs can be configured and what this brand new feature does for users. […]

Read more
13.12.2022 | Hans-Jürgen Schönig

Oracle to PostgreSQL migration cost assessment made easy

The CYBERTEC Migrator is a free tool that allows you to easily and quickly migrate from Oracle to PostgreSQL. The CYBERTEC Migrator container can be downloaded at no cost to you. It is a good way for people to move from Oracle to PostgreSQL as speedily as possible. And now, the latest release has a […]

Read more
29.11.2022 | Hans-Jürgen Schönig

Partition PostgreSQL: which partition did I INSERT my data into?

Partitioning is one of the most desired features of PostgreSQL, widely adopted by developers. This is not only true for in PostgreSQL 15, but also for older versions which did not provide as many features as the latest version of the database. That’s why you should know not only how to properly partition tables, but […]

Read more
22.11.2022 | Hans-Jürgen Schönig

PostgreSQL ERROR: permission denied for schema public

In PostgreSQL 15, a fundamental change took place which is relevant to every user who happens to work with permissions: The default permissions of the public schema have been modified. This is relevant because it might hurt you during application deployment. You need to be aware of how it may affect you. Creating users Many […]

Read more
02.11.2022 | Hans-Jürgen Schönig

btree vs. BRIN: 2 options for indexing in PostgreSQL data warehouses

Indexing is the key to good performance. However, people often ask: Is there an alternative to btree indexing? Can we make indexes in PostgreSQL smaller? Can we create indexes in PostgreSQL faster? And how can we index in a data warehouse? This blog will answer all those questions and show which options you have to […]

Read more
11.10.2022 | Hans-Jürgen Schönig

pgbouncer: Types of PostgreSQL connection pooling

pgbouncer is one of the most widely used tool for connection pooling. At CYBERTEC, we’ve successfully deployed it in many different situations. It has proven to be reliable as well as useful. Before we dive into different pooling modes and their implications, why do we need a connection pooler in the first place? The reason […]

Read more
04.10.2022 | Hans-Jürgen Schönig

VACUUM does not shrink my PostgreSQL table

Did you ever wonder why VACUUM does not make your PostgreSQL tables smaller? Did you ever wonder why VACUUM does not shrink data files? Well, maybe this is the article you have been looking for. The point is: usually, space is not returned to the operating system after a cleanup and it is important to […]

Read more
27.09.2022 | Hans-Jürgen Schönig

LISTEN / NOTIFY: Automatic client notification in PostgreSQL

What is LISTEN and NOTIFY? LISTEN / NOTIFY is a feature that enables users to listen to what goes on in the database. It is one of the oldest functionalities in PostgreSQL and is still widely used. The main question is: What is the purpose of the asynchronous query interface (LISTEN / NOTIFY), and what […]

Read more
20.09.2022 | Hans-Jürgen Schönig

PostgreSQL: Sequences vs. Invoice numbers

Sequences are a core feature of SQL. However, some users are tempted to implement sequences to generate invoices. That’s dangerous and should be avoided. The core question is: Why? What’s the problem with using database-side sequences to put unique invoice numbers to send to clients? Let’s dive in and find out. Getting started with CREATE […]

Read more
13.09.2022 | Hans-Jürgen Schönig

What is an inner join in SQL? And what is an outer join?

A join is a concept in IT which is widely used and often referred to but rarely really understood. What are the differences between inner joins, outer joins, semi joins and so on? Let’s shed some light on them and see how inner and outer joins really work. Producing sample data Before we can get […]

Read more
06.09.2022 | Hans-Jürgen Schönig

ERROR: nextval: reached maximum value of sequence

serial is a popular pseudo data type in PostgreSQL which is often used to generate auto-increment columns. However, this can lead to issues which are often underestimated. So what is the problem? Some of you might have already seen the following error message in real life: What happened here is that the underlying integer column […]

Read more
←

logo

CYBERTEC PostgreSQL International GmbH
Römerstraße 19
2752 Wöllersdorf
AUSTRIA

+43 (0) 2622 93022-0
office@cybertec.at
twitter.com/PostgresSupport
github.com/cybertec-postgresql

Our Services

• Administration
• Replication
• Consulting
• Database Design
• Support
• Migration
• Development

 

SUPPORT CUSTOMERS
Go to the support platform >>

Newsletter

Check out previous newsletters!

Stay well informed about PostgreSQL by subscribing to our newsletter.

© 2000–2023 CYBERTEC PostgreSQL International GmbH
  • IMPORTANT INFORMATION ABOUT COVID-19
  • Contact
  • Data protection policy
  • Imprint
  • Terms and Conditions