---
title: "How to expose Postgres performance issues"
publication: "Postgres Weekly"
issue: 493
published_at: "2023-02-15"
canonical_url: "https://postgresweekly.com/issues/493"
---

Plus the future of I/O observability in Postgres. |        

#​493 — February 15, 2023 

[Web Version](https://postgresweekly.com/issues/493)  

Together with [![Percona logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_600,h_120/e_make_transparent/co_white,e_outline:7/iplxngwgax1ktho5k45h.png)](https://www.percona.com/ha-for-postgresql?utm_campaign=22q2-cm-campaign-pg-high-availability&utm_source=postgres-weekly&utm_medium=primary-newsletter&utm_content=download-architecture)  

Postgres Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/chrf2e7pv4jro5ke7sue.jpg)](https://pganalyze.com/blog/pg-stat-io)  

[Waiting for Postgres 16: Cumulative I/O Statistics with `pg_stat_io`](https://pganalyze.com/blog/pg-stat-io) — A look at querying system-wide I/O statistics in future versions of Postgres using the new [pg_stat_io](https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=a9c70b46dbe152e094f137f7e6ba9cd3a638ee25) view, several use cases for it, and thoughts on the future of I/O observability in Postgres generally. 

Lukas Fittl   

[Exposing Postgres Performance Secrets](https://www.crunchydata.com/blog/exposing-postgres-performance-secrets) — Long standing Postgres expert Craig lays out four basic things to set up today to make finding and fixing performance issues faster in the future. 

Craig Kerstiens   [![\](https://copm.s3.amazonaws.com/284a7637.png)](https://www.percona.com/ha-for-postgresql?utm_campaign=22q2-cm-campaign-pg-high-availability&utm_source=postgres-weekly&utm_medium=primary-newsletter&utm_content=download-architecture) 

[Download PostgreSQL High Availability Architectures](https://www.percona.com/ha-for-postgresql?utm_campaign=22q2-cm-campaign-pg-high-availability&utm_source=postgres-weekly&utm_medium=primary-newsletter&utm_content=download-architecture) — Yours for free. Percona architectures are built with only battle-tested open source components and designed to ensure up to 99.9% availability. Architectures are available for businesses of every size. 

Percona sponsor   

[Storing OpenAI Embeddings in Postgres with pgvector](https://supabase.com/blog/openai-embeddings-postgres-vector) — An example of how to build a machine learning-powered search engine using OpenAI’s embeddings and Postgres. The idea is you compress sentences (in this case) down into vectors, store those vectors, then query against them – something that [pgvector](https://github.com/pgvector/pgvector) can help you with. 

Greg Richardson (Supabase)   

[Working with Rankings with SQL Window Functions](https://antonz.org/sql-window-functions-ranking/) — A handy, easy to follow tutorial on making ratings and dividing data into partitions extracted from Anton’s _SQL Window Functions Explained_ book. 

Anton Zhiyanov   

**IN BRIEF:** 

- [Postgres 15.2, 14.7, 13.10, 12.14, and 11.19](https://www.postgresql.org/about/news/postgresql-152-147-1310-1214-and-1119-released-2592/) have all been released to fix a security vulnerability and a variety of bugs.
- We linked to Citus 11.2 last week, but the [actual release post](https://www.citusdata.com/blog/2023/02/08/whats-new-in-citus-11-2-patroni-ha-support/) dropped after we sent the newsletter :-) The big update for the horizontal database scaling system was its support within [Patroni 3.0](https://patroni.readthedocs.io/en/latest/), but there were [other updates too](https://www.citusdata.com/updates/v11-2/) like `MERGE` support, enhanced `OUTER JOIN` support and identity column support.
- Did you know it's possible to [install Postgres on an Android device?](https://proopensource.it/blog/postgresql-on-android)   

[Finding the Current Timestamp](https://www.cybertec-postgresql.com/en/postgresql-finding-the-current-timestamp/) — You think it’d be easy to establish what the time is, but there are a few options. Learn more about real time, statement time and transaction time. 

Hans-Jürgen Schönig   

▶[Caching Postgres on the Edge with PolyScale.ai](https://www.youtube.com/watch?v=F505n0d9iuA) — A quick introduction to [Polyscale](https://www.polyscale.ai/), a serverless plug and play database cache. 

Sam Aybar and Supabase   

[Debugging WAL Events with pg_walinspect](https://www.ongres.com/blog/debugging-postgres-wal-events-with-pg_walinspect/) — [pg_walinspect](https://www.postgresql.org/docs/15/pgwalinspect.html) is a module supplied with Postgres for looking into the contents of the write-ahead log. 

Anthony Sotolongo   

[Should You Use `char`, `varchar`, or `text` in Postgres?](https://maximorlov.com/char-varchar-text-postgresql/) 
Maxim Orlov   

[How to Listen to Database Changes with Triggers and Elixir](https://www.peterullrich.com/listen-to-database-changes-with-postgres-triggers-and-elixir) 
Peter Ullrich   

[Storing Network Addresses in Oracle vs Postgres vs SQL Server](https://www.migops.com/blog/storing-network-addresses-in-oracle-vs-postgresql-vs-sql-server/) 
Jagadeesh Panuganti    

🛠 Code and Tools  

[pgpq: Stream Arrow / Parquet Data into Postgres](https://github.com/adriangb/pgpq) — A new ‘proof of concept stage’ library for streaming Arrow RecordBatches to Postgres in order to bulk load Parquet files. Written in Rust. 

Adrian Garcia Badaracco   

[SQL Notebook: Casual Data Exploration in SQL](https://sqlnotebook.com/) — Import data from CSV, Excel, Microsoft SQL Server, Postgres, and MySQL. Use a Jupyter-style notebook interface for exploratory queries, and write stored procedures for reusable logic. 

Brian Luft   

[Postgres Message Queue (PGMQ)](https://github.com/CoreDB-io/coredb/tree/main/extensions/pgmq) — A lightweight distributed message queue on Postgres as an extension. Written in Rust and lives as part of the [CoreDB](https://github.com/CoreDB-io/coredb/) Postgres distribution. 

CoreDB    

- [PostgresML 2.2](https://github.com/postgresml/postgresml)
 ↳ Train models and make online predictions using only SQL.   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/da6c9rwsyzsj3oswtxkr.jpg)](https://github.com/datafold/data-diff)  

- [data-diff 0.4](https://github.com/datafold/data-diff)
 ↳ Efficiently diff _across_ relational databases.
- [pg_timetable 5.1](https://github.com/cybertec-postgresql/pg_timetable)
 ↳ Advanced standalone job scheduler.
- [pg_cron 1.5.1](https://github.com/citusdata/pg_cron)
 ↳ Simple cron-based job scheduler in Postgres.
- [pspg (Postgres Pager) 5.7.4](https://github.com/okbob/pspg)
 ↳ Unix pager for tabular data.
- [sqlc 1.17](https://github.com/kyleconroy/sqlc)
 ↳ Generate type-safe Go code from SQL.    

**Got a new email?** You can [change your address here](https://postgresweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Postgres Weekly](https://postgresweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Postgres, PostgreSQL and the Slonik Logo are trademarks or registered trademarks of the PostgreSQL Community Association of Canada. 

[Stop getting this newsletter.](https://postgresweekly.com/leave/*|UID|*)
